我写了以下代码:
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
似乎不是第一次等待标准输入。我总是得到 的输出-
,然后它等待输入。意思是,循环的第一次迭代,它不是在等待标准输入,而是像 myfgets
一样打印出两个由分隔的空字符。-
printf
这是为什么?我怎样才能fgets
每次都等待输入?我觉得这是一个线程问题。