|
ええとこれは以前に間違えたレスをしたので今回は正しく書いて
みたいと思いますが、はてさて。
scanf("%c\n") という書式文字列は、まず標準入力から一文字読み
取り、ホワイトスペース文字を読み飛ばし、ホワイトスペース文字
以外の文字に出会ったら終了します。
つまり最初に 'a' を入れても '\n' が残っており、これを読み飛ば
したら標準入力が空になるのでまだ入力を待ちます。次に 'b' を
読んだ時点で scanf() は終了し、読み過ぎた 'b' を標準入力に押し
戻します。以後同様です。このようにホワイトスペース文字 ' '、
'\n'、'\t' はscanf()において動作が特殊ですので注意が必要
です。
ではどうすればいいかというと、普通に"%c"で読み、その結果が'\n'
であれば更に読めばよいと思います。(これでいいかな(^_^;))
#include<stdio.h>
int main(void)
{
char a;
while(1) {
printf("Seach word...");
while (1) {
scanf("%c",&a);
if (a != '\n') break;
}
printf("%c=%d \n", a, a);
}
return 0;
}
|