我有使用fgets的問題。該循環應該讀取一行最大值。 19個字符,分析此char數組,然後等待下一個輸入。 問題是,如果輸入的行放入了19個字符,fgets將填充其餘字符,直到輸入Ctrl-D或換行符,從而啓動一個沒有新輸入的新循環。讀取19個字符後,輸入(stdin)應該以某種方式刷新,因此循環可以從乾淨的版本開始。任何人都可以解決這個問題?C,沖洗stdin
char str[20];
while((fgets(str, 20, stdin) != NULL)) {
puts(str); //monitoring str
if(str[0] == 'q') break;
}
實施例中使用:
hola hola //user inputs 9 chars + newline
hola hola //puts writes
hoo hoo hoo hoo hooh //user inputs 20 chars + newline
hoo hoo hoo hoo hoo //puts writes
h //
感謝,我認爲會做的伎倆。 – DoggyDoo 2010-10-06 19:42:04