我写了以下代码:
我有一个输入文件,其中包含它所拥有的行数,然后是需要处理的那些行。所以我读取行数到变量N中,之后使用fgets获取该行并进行处理。
然而,fgets似乎在第一次调用时不会等待标准输入。我总是得到输出“-”,然后才等待输入。这意味着,在循环的第一次迭代中,fgets不会等待标准输入,只会像我的printf一样打印出两个由“-”分隔的空字符。
为什么会这样?如何让fgets每次都等待输入?我觉得这可能是一个线程问题。
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每次都等待输入?我觉得这可能是一个线程问题。