7

a = getchar()同等scanf("%c",&a);ですか?

where is a variable?とputchar(a)同等です。printf("%c",a);achar

4

2 に答える 2

8

一般的に言えば、それらは同じです。

しかし、それらはいくつかの細かい方法ではありません。関数は returnではなくgetcharreturn に型付けされています。これは、すべての可能な値と追加のエラー コードの両方を可能にするために行われます。 intchargetcharchar

したがって、以下はほとんどのコンパイラで問題なくコンパイルされますが、本質的にエラー メッセージを切り捨てています。

char c = getchar();

ただし、 functionscanfを使用すると、char型を直接使用でき、エラー コードを戻り値に分離できます。

于 2010-03-20T10:33:21.843 に答える
1

彼らはここで同じことをします。ただし、文字を処理しているだけであることがわかっている場合は、getcharおよびバリアントがリクエストの処理方法を決定するために毎回文字列を解析する必要がputcharあるため、より効率的になりprintfます。scanfさらに、それらは下位レベルのライブラリで呼び出される場合があるため、他の場所で必要ない場合 はprintf/をリンクする必要はありません。scanf

于 2010-03-20T10:34:35.350 に答える