TransWikia.com

Por que fgetc(stdin) não reconhece o fim de um arquivo?

Stack Overflow em Português Asked by Antharie on January 23, 2021

Por algum motivo o fgetc(stdin) não está reconhecendo o fim de linha de um arquivo e ele fica no while infinitamente.

fscanf(arqIN, "%*s %d", &qntPacientes); // Aqui é só pra pegar a informação da primeira linha
    
    pacientes = (Paciente**)malloc(qntPacientes * sizeof(Paciente*));
    
    if (pacientes == NULL){exit(1);}
    
    while(endF != 1) {
        index = 0;
        fscanf(arqIN, "%d", &atualPaciente);
        printf("Paciente: %d ", atualPaciente);
        
        while (ch = fgetc(arqIN) != 'n') {
            
            fscanf(arqIN, "%d", &resultados[index]);
            printf("%d ", resultados[index]);
            index++;
            tamanhoVetorResultados++;
        }
        printf("n");
        
        pacientes[atualPaciente] = retornaResultados(resultados, tamanhoVetorResultados);
        
        if(ch == EOF) {endF = 1;}
    }

O arquivo de entrada está assim:

Clientes: 4
2 110 120 100 300 110
3 250
1 170 100
0 95

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP