È getchar () equivalente a scanf ( “% c”) e putchar () equivalente a printf ( “% c”)?
Domanda
è equivalente a a = getchar()
scanf("%c",&a);
?
è equivalente a putchar(a)
printf("%c",a);
dove a
è una variabile char
?
Soluzione
In generale sì, sono la stessa cosa.
Ma non sono in pochi modi nitpicky. La getchar
funzione viene digitato per tornare int
e non char
. Questo viene fatto in modo che getchar
possono entrambi tutti i possibili valori char
e inoltre i codici di errore.
Così, mentre i seguenti felicemente compila nella maggior parte dei compilatori si sono essenzialmente troncando via un messaggio di errore
char c = getchar();
La funzione di scanf
, però, consente di utilizzare un tipo di char
direttamente e separa il codice di errore nel valore di ritorno.
Altri suggerimenti
Fanno la stessa cosa qui. Tuttavia, se si sa che si sta solo facendo personaggi poi getchar
e putchar
sarà più efficiente, dal momento che le varianti printf
e scanf
dovranno analizzare la stringa ogni volta per determinare come elaborare la vostra richiesta. Inoltre, essi possono essere chiamati in una biblioteca di livello inferiore nel senso che non si può avere il printf
/ scanf
legata, se non sono necessari altrove.