0

私はCでプログラミングしています。何らかの理由で、fgetsをスキップして、後でコードを実行するだけですが、その理由はわかりません。

char content[256];
printf("What do you want it to say?\n");
fgets(content, 256, stdin);
4

3 に答える 3

1

標準入力をフラッシュしようとしましたか?fgets が即座に返される原因となっている改行文字が含まれている可能性があります。

この質問は、標準入力をフラッシュする良い方法を参照しています

于 2012-07-13T19:41:28.650 に答える
1

I/O はバッファリングできることを思い出してください。関数が呼び出されたときに入力バッファーで待機しているものがある場合は、それが読み込まれます。バッファーの最初の文字が である'\n'場合、関数はすぐに戻り、入力を収集していないように見えます。を呼び出す前に、入力バッファに何もないことを確認してくださいfgets()

于 2012-07-13T19:45:12.887 に答える
0
char content[256];
printf("What do you want it to say?\n");
while ( getchar() != '\n');
fgets(content, 256, stdin);

または、これを試しましたか...

 char content[256];
 printf("What do you want it to say?\n");
 fgets(content, 256, stdin);
于 2014-09-13T08:35:11.707 に答える