Enviado em 24/11/2015 - 17:09h
Tenho que fazer um projeto de cadastro de funcionários em C, que tenha incluir, excluir...
Tô com um problema na parte de excluir, quando coloco a matricula para excluir o programa não exclui, a matricula só é excluida quando eu reexecuto o algoritmo e tem vezes que ele duplica a matricula que coloquei para excluir. Podem da um help(código a baixo)
FILE *pf;
FILE *temporario;
pf = fopen("C:\\Users\\fabricio\\Desktop\\Projeto C\\Dados\\Funcionarios.txt","r+");
temporario = fopen("C:\\Users\\fabricio\\Desktop\\Projeto C\\Dados\\FuncionariosTemporario.txt","a+");
formulario Dados;
int matricula,achou = 0;
rewind(pf);
if(pf == NULL){
printf("\t\t Erro ao abrir arquivo\n");
}
desenharTitulo();
printf("\t\t %c--------------------------------------%c\n",254,254);
printf("\t\t | ");printf("\t\t EXCLUIR");printf("\t\t |\n");
printf("\t\t %c--------------------------------------%c\n",254,254);
printf("\n");
printf("\t\t |--------------------------------------|\n");
printf("\t\t |MATRÍCULA : ");
scanf("%d",&matricula);
rewind(pf);
while(fread(&Dados,sizeof(Dados),1,pf) != 0){
if(Dados.matricula != matricula){
fwrite(&Dados,sizeof(Dados),1,temporario);
}else{
printf("\t\t |--------------------------------------|\n");
printf("\t\t excluido com sucesso");
achou = 1;
}
}
fclose(pf);
fclose(temporario);
if(achou == 1){
remove("C:\\Users\\fabricio\\Desktop\\Projeto C\\Dados\\Funcionarios.txt");
rename("C:\\Users\\fabricio\\Desktop\\Projeto C\\Dados\\FuncionariosTemporario.txt","C:\\Users\\fabricio\\Desktop\\Projeto C\\Dados\\Funcionarios.txt");
}else{
printf("matricula não encontrada\n");
}
Tô com um problema na parte de excluir, quando coloco a matricula para excluir o programa não exclui, a matricula só é excluida quando eu reexecuto o algoritmo e tem vezes que ele duplica a matricula que coloquei para excluir. Podem da um help(código a baixo)
FILE *pf;
FILE *temporario;
pf = fopen("C:\\Users\\fabricio\\Desktop\\Projeto C\\Dados\\Funcionarios.txt","r+");
temporario = fopen("C:\\Users\\fabricio\\Desktop\\Projeto C\\Dados\\FuncionariosTemporario.txt","a+");
formulario Dados;
int matricula,achou = 0;
rewind(pf);
if(pf == NULL){
printf("\t\t Erro ao abrir arquivo\n");
}
desenharTitulo();
printf("\t\t %c--------------------------------------%c\n",254,254);
printf("\t\t | ");printf("\t\t EXCLUIR");printf("\t\t |\n");
printf("\t\t %c--------------------------------------%c\n",254,254);
printf("\n");
printf("\t\t |--------------------------------------|\n");
printf("\t\t |MATRÍCULA : ");
scanf("%d",&matricula);
rewind(pf);
while(fread(&Dados,sizeof(Dados),1,pf) != 0){
if(Dados.matricula != matricula){
fwrite(&Dados,sizeof(Dados),1,temporario);
}else{
printf("\t\t |--------------------------------------|\n");
printf("\t\t excluido com sucesso");
achou = 1;
}
}
fclose(pf);
fclose(temporario);
if(achou == 1){
remove("C:\\Users\\fabricio\\Desktop\\Projeto C\\Dados\\Funcionarios.txt");
rename("C:\\Users\\fabricio\\Desktop\\Projeto C\\Dados\\FuncionariosTemporario.txt","C:\\Users\\fabricio\\Desktop\\Projeto C\\Dados\\Funcionarios.txt");
}else{
printf("matricula não encontrada\n");
}