Problema de fgets na leitura de um arquivo
Boa noite, estou tentando fazer uma funcao que le o nome e a nota de individuos e descobre qual é a maior nota entre eles. Como podem ver eu chamo a funcao fgets, guardo nas variaveis o nome em nome1 e a nota em n1 e só depois entro no while. Mas acontece algo bem bizarro, quando eu chamo fgets dentro do while, a variavel nome1 é substituida pela linha inteira que o fgets lê.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 80
int comparar_notas ()
{
int n1,n2;
char *nome2,*nome1;
char buf[MAX];
FILE *arq;
arq = fopen("arquivo.txt", "r");
if(arq == NULL)
{
printf("Erro ao abrir o arquivo\n");
return;
}
fgets(buf, MAX, arq);
nome1 = strtok(buf,",");
n1 = atoi(strtok(NULL,","));
while(!feof(arq))
{
fgets(buf, MAX, arq);
nome2 = strtok(buf,",");
n2 = atoi(strtok(NULL,","));
if (n1<n2)
{
n1=n2;
nome1=nome2;
}
}
printf("%s,%d",nome1,n1);
}
int main ()
{
comparar_notas();
return 0;
}
segue ai o q esta escrito no arquivo
Adamastor,66
Alaor,28
Aldebaran,88
Arlinda,19
Austeclynio,22
Claudinei,60
Domitila,62
Enderson,44
Guilhermina,33
Milena,72
Reginaldo,50
Tula,99
Zoraide,77
Discussão (2)
Carregando comentários...