Ir ao conteúdo
  • Cadastre-se
Kennedy Lima Araújo

Arquivo em C (Validação de nome nulo)

Recommended Posts

Sou novo em linguagem C e estou com dificuldades em validar se o nome que está dentro do arquivo é nulo ou não

já tentei de varias formas, já consegui algumas vezes mas não como o esperado.

Quero verificar se o nome que esta dentro do aquivo é nulo

 

void validaArquivo (char *nomeArquivo, Ficha *alunos)
{
  char nomeAluno[120][50];
FILE *p_arquivo;
int contador=0, auxiliar=0, i=0;
p_arquivo=fopen(nomeArquivo,"r");
while(!feof(p_arquivo)){
fscanf(p_arquivo,"%d %f %f", &alunos[contador].matricula, &alunos[contador].nota1, &alunos[contador].nota2);
fflush(stdin);
   if(fgets(alunos[contador].nomeAluno,MAXCHAR,p_arquivo)==NULL){ <<ERRO
    p_arquivo=fopen("erro.txt","a");
fprintf(p_arquivo,"Erro na linha %d\n",contador);//
system("pause");
exit(0);
}
   fclose(p_arquivo);
contador=contador+1;
}
fclose(p_arquivo);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

como null? Um texto não pode ser null! Um string não é um só carácter, si não um punhado de caracteres. Para que você faça uma ideia, si eu fizer char nome[100] = NULL; é como si eu tiver fazendo char nome[100] = 0 no qual é um absurdo, pois não posso designar um int a um string, porém, sim que posso fazer char nome[100] = {0};, nesse caso todos os chars da string nome tomam o valor de nulo, a string fica formatada.

 

Outra coisa que posso fazer é:

char nome[100];

strcpy( nome, ""); //<-igual que antes, só que posso fazer após a declaração, a qualquer hora.

 

Si você fizer:

    char string[100] = "\0";
    fputs(string,arquivo);

...provavelmente o arquivo fique com um tamanho de zero, fputs não enviará nada ao arquivo. Então fica difícil te entender.

 

Depende muito como você tem no arquivo, si você enviar o arquivo para eu dar uma analisada talvez possa lhe ajudar. Descreva passo a passo o que você tem no arquivo e o que você quer fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×