【发布时间】:2011-04-22 00:34:32
【问题描述】:
我在使用 fget 时遇到问题。该循环应该读取一行最大值。 19 个字符,分析这个 char 数组,然后等待下一个输入。 问题是,如果输入的行超过 19 个字符,fgets 将用剩余的字符填充 str,直到输入 Ctrl-D 或换行符,从而在没有新输入的情况下启动一个新循环。输入(stdin)应该在读取 19 个字符后以某种方式刷新,因此循环可以从一个干净的状态开始。有没有人可以解决这个问题?
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 //
【问题讨论】: