fgets () не ждет ввода

Я написал следующий код:

<code>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]);
  }
}
</code>

У меня есть входной файл, который имеет количество строк, а затем то число строк, которые я хочу обработать. Поэтому я прочитал по количеству строк вN, После этого я используюfgets чтобы получить линию, чтобы иметь возможность обрабатывать ее.

Тем не мение,fgets не похоже на ожидание стандартного ввода в первый раз. Я всегда получаю вывод-, а затем он ждет ввода. Это означает, что первая итерация цикла не ожидает стандартного ввода вfgets и просто печатает два пустых символа, разделенных- Как мойprintf делает.

Это почему? Как я могу получитьfgets ждать ввода каждый раз? Я чувствую, что это проблема с потоками.

Ответы на вопрос(3)

Ваш ответ на вопрос