我写了下面的代码:
int N;
scanf("%d", &N);
int i;
for (i = 0; i < N; i++) {
char line[LINE_MAX];
if (fgets(line, LINE_MAX, stdin) != NULL) {
// do stuff with line here
printf("%c - %c\n", line[0], line[1]);
}
}
我有有它的行数的输入文件,然后行的这个数字其次,我要处理。 所以,我在进行的读取数量N
。 在那之后,我使用fgets
得到线能够处理它。
然而, fgets
似乎并没有等待标准输入的第一次。 我总是得到的输出-
然后等待输入。 意思是,循环的第一次迭代,它不是在等待标准的输入fgets
和刚打印出相隔两个空字符-
如我printf
一样。
这是为什么? 我怎样才能得到fgets
每次等待输入? 我觉得这是一个线程问题。