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
ждать ввода каждый раз? Я чувствую, что это проблема с потоками.