È getchar () equivalente a scanf ( “% c”) e putchar () equivalente a printf ( “% c”)?

StackOverflow https://stackoverflow.com/questions/2482634

  •  21-09-2019
  •  | 
  •  

Domanda

è equivalente a a = getchar() scanf("%c",&a);?

è equivalente a putchar(a) printf("%c",a); dove a è una variabile char?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top