|
こんにちは。
>scanf()を使って文字列を入力して、入りきらなかった文字はキーバッファに
>残っていますが、fgets()の場合は指定した第二引数より多くの文字数を入力
>した場合、残りの文字はscanf()のようにキーバッファに残っているのでしょうか?
下記の例のように、fgetsも指定バイト数より多い入力は、入力バッファに残ります。
#include <stdio.h>
int main(void)
{
char s1[6], s2[6], s3[6], s4[6];
fgets(s1, 6, stdin);
fgets(s2, 6, stdin);
scanf("%5s", s3);
scanf("%5s", s4);
printf("s1 = %s\n", s1);
printf("s2 = %s\n", s2);
printf("s3 = %s\n", s3);
printf("s4 = %s\n", s4);
return 0;
}
実行結果例(太字はキー入力)
0123456789abcdefghij
s1 = 01234
s2 = 56789
s3 = abcde
s4 = fghij
|