Olá estou fazendo um programa em C que faz cadastro de alunos, primeiro eu armazeno em .txt o Ra e o Nome do aluno, depois eu faço a busca pelo Ra.
O problema é que quando comparo o Ra digitado com o Ra do arquivo, eles são iguais mas o strcmp() volta != de 0.
Obs: Rodei com o Debug e vi que as duas variaveis são iguais!
TRECHO QUE FAZ A BUSCA NO ARQUIVO E COMPARA.
void buscar()
{
FILE *arq_leu;
char linha[40], ra[5], nome[33];
char salva_nome[33], salva_ra[5];
int i, j;
int achou;
arq_leu = fopen("lista.txt", "r");
if(!arq_leu){
printf("Impossivel ler arquivo");
exit(1);
}
printf("\nDigite o RA que quer buscar: ");
gets(ra);
//Faz a varredura no arquivo
while(!feof(arq_leu)){
achou = 0;
fgets(linha, 40, arq_leu);
for(i = 0; i < strlen(linha)-1; i++){
if((linha[i] != '|') && (i <= 4)){
salva_ra[i] = linha[i];
if(strcmp(ra, salva_ra)==0){ //Não entra nesse if
achou = 1;
j = 0;
continue;
}
}
if(achou == 1){
salva_nome[j] = linha[i];
}
}
//Mostra o RA
if(achou == 1){
printf(PULA);
printf("Ra:%s ", salva_ra);
printf("Nome:%s ", salva_nome);
}
//Limpa a variavel para proxima verificação
for(i = 0; i < strlen(salva_ra); i++){
salva_ra[i] = '\0';
}
}
fclose(arq_leu);
return;
}