fgets () não está esperando por entrada
Eu escrevi o seguinte código:
<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>
Eu tenho um arquivo de entrada que tem o número de linhas que ele tem e, em seguida, esse número de linhas seguidas que eu quero processar. Então eu li o número de linhas emN
. Depois disso, eu usofgets
para obter a linha para poder processá-lo.
Contudo,fgets
não parece esperar por um stdin pela primeira vez. Eu sempre recebo saída de-
e, em seguida, aguarda a entrada. Significado, a primeira iteração do loop, não está à espera de entrada padrão emfgets
e apenas imprime dois caracteres vazios separados por-
como meuprintf
faz.
Por que é que? Como posso obterfgets
esperar pela entrada toda vez? Eu sinto que é um problema de segmentação.