我有使用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