tenho a variavel global
durante o programa eu altero o valor dela e cada vez q altero salvo em arquivo denovo, mas nem cheguei a chamar a função durante execução, estou testando somente abrindo e fechando por enquanto
o problema esta na minha função de ler ou salvar em arquivo, n sei aond, ja revisei um monte de vez e n achei
eu faço o seguinte, qd eu abro o programa ele chama o LoadFile abaixo
void LF_QtdProfessores(char FileName[]){
FILE *arquivo;
arquivo = fopen (FileName, "rb");
if (arquivo == NULL) {
printf (" Arquivo 'Numero_Professores.dat' nao existe. Criando arquivo...\n");
SF_QtdProfessores(FN_QtdProfessores); //chama StoreFile para criar o arquivo e salvar caso n tenha
}
else{
if(fread(&qtdProfessores,sizeof(qtdProfessores),1,arquivo) != 1)
printf(" Erro de leitura em 'Numero_Professores.dat'.\n");
else
printf (" Dados lidos com sucesso de 'Numero_Professores.dat'.\n");
}
fclose(arquivo);
}
ae se não tem o arquivo ele cria chamando o StoreFile
void SF_QtdProfessores(char FileName[]){
FILE *arquivo;
arquivo = fopen (FileName, "wb");
if (arquivo == NULL) {
printf (" Nao existe a pasta 'Professores'. Criando pasta...\n");
system("mkdir Professores");
SF_QtdProfessores(FileName); //Rechama a função para criar o arquivo, pq n proxima entra no else
}
else{
if(fwrite(&qtdProfessores,sizeof(qtdProfessores),1,arquivo) != 1){
printf(" Erro de escrita em 'Numero_Professores.dat'.\n");
}
else
printf (" Dados guardados com sucesso em 'Numero_Professores.dat'.\n");
}
fclose(arquivo);
}
na primeira vez q executo qd o arquivo ainda n existe ele cria a variavel e td mais inicializada em 0
ae qd eu abro e fecho o programa (o arquivo ja existe dai), ele da load no arquivo mas me retorna a variavel qtdProfessores com um valor inteiro aleatorio
n sei porque faz isso, preciso de ajuda
Obs.: ele sempre imprime a mensagem Erro de leitura em ‘Numero_Professores.dat’.
ja verifiquei se era o FileName que estava mandando, mas n eh, eu mando a mesma variavel de FileName para o StoreFile e para o LoadFile
[color=red]@edit[/color]
mudei o programa, coloquei todas as variaveis de tamanho num vetor e salvei o vetor e fiz uma função só, n sei oq mudei, mas deu certo