[CYの先生は間違って言った](すべての空白文字を含む)なしデフォルトの区切り文字:主に「%cの」のための
I.
char a,b;
scanf("%c%c",&a,&b);
printf("%c%c",a,b);
何の区切り文字入力ではありません
シナリオ2
char a,b;
scanf("%c %c",&a,&b);
printf("%c%c",a,b);
特別:長いscanfの間のような()文字%のC、任意の空白文字(および非数)の、入力は、現時点での状況と同様のセパレータとして使用されるような任意の空白文字の出現は「%D%D」{あるの、読んでインテリジェントに「本物」の文字を}識別- しかし!最初の文字の新ラウンドは、キャリッジリターンであり続けるだろう
要約すると、2の文字入力よりよく利用する複数のを読んだ後
-
余分な文字化けをバッファリングするためのアプローチ
(1)クリアバッファ - 名付けたにfflush(STDIN)関数のバッファを空にするために使用することができます。
while(scanf("%c%c",&a,&b)!=EOF)
{
printf("a=%c,b=%c\n",a,b);
fflush(stdin);
printf("Input the value of a and b:");
}
すなわち:白文字の前に空の一時バッファを誤読しています。
(2)データバッファ読み出しにより誘導される誤差(間接的な洗浄バッファ) - GETCHAR()または取得( )
GETCHARため():最初の文字バッファ(EOF)を読んで、関数は、文字(EOF == - 1)の値を返す(整数変数に戻すことは、それに対応するASCIIコードである場合)は、兄弟を拡張しました関数のputchar():のputchar(CH / INT) - パラメータCH / INT(ASCIIコード)に、この機能の出力端子char値に対応する
ためには、()を取得:文字列を取得します(読み取りラインのもの)