#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <locale.h>
#include <stdlib.h>
typedef struct Pessoa
{
char nome[255],telefone[12];
}pessoa;
//FUNÇÕES
void fun_cad(FILE *arq);
void fun_menu(FILE *arq);
void fun_mostra(FILE *arq);
void fun_exclui(FILE *arq);
int main(int argc, char const *argv[])
{
FILE *arq;
arq= fopen("contatos.txt","a+");
setlocale(LC_ALL,"");
fun_menu(arq);
fclose(arq);
}
void fun_menu(FILE *arq)
{
int op;
do
{
do
{
system("cls");
printf("1-Cadastro\n");
printf("2-Mostrar\n");
printf("3-Excluir\n");
printf("0-Sair\n");
printf("OPÇÃO: ");
scanf("%d",&op);
}while(op<0);
switch(op)
{
case 1:
fun_cad(arq);
break;
case 2:
fun_mostra(arq);
break;
case 3:
fun_exclui(arq);
break;
}
}while(op!=0);
}
void fun_cad(FILE *arq)
{
int op;
pessoa cad;
char aux[2]="\n";
printf("Nome: ");
fflush(stdin);
gets(cad.nome);
printf("Telefone: ");
fflush(stdin);
gets(cad.telefone);
printf("Deseja cadastrar o contato? \n");
scanf("%d",&op);
if(op==1)
{
strcat(aux,cad.nome);
strcpy(cad.nome,aux);
strcpy(aux,"\n");
strcat(aux,cad.telefone);
strcpy(cad.telefone,aux);
strcpy(aux,"\n");
fputs(cad.nome,arq);
fputs(cad.telefone,arq);
}
}
void fun_mostra(FILE *arq)
{
rewind(arq);
pessoa mos;
char str[254];
fgets(mos.nome,254,arq);
system("cls");
while(!feof(arq))
{
fgets(mos.nome,254,arq);
printf("\t\tNome: ");
puts(mos.nome);
fgets(mos.telefone,254,arq);
printf("\t\tTelefone: ");
puts(mos.telefone);
printf("----------------------------------------------\n");
}
getch();
}
void fun_exclui(FILE *arq)
{
int ver=0;
char nome[255],cha;
pessoa excl;
FILE *aux=fopen("auxiliar.dat","w");
rewind(arq);
fgets(excl.nome,254,arq);
fputs("\n",aux);
system("cls");
printf("Nome a ser excluido: ");
fflush(stdin);
gets(nome);
strcat(nome,"\n");
while(!feof(arq))
{
fgets(excl.nome,254,arq);
fgets(excl.telefone,11,arq);
if(strcmp(nome,excl.nome)==0)
ver=1;
else
{
fputs(excl.nome,aux);
fputs(excl.telefone,aux);
}
}
puts(excl.telefone);
if(ver==1)
{
printf("CONTATO EXCLUIDO COM SUCESSO");
fclose(arq);
fclose(aux);
remove("contatos.txt");
rename("auxiliar.dat","contatos.txt");
arq=fopen("contatos.txt","a+");
}
else
{
printf("Contato não encontrado\n");
fclose(aux);
remove("auxiliar.dat");
}
fclose(aux);
getch();
}
Esse é o código que foi mais funcional que é colocando o \n antes do nome mas causa o problema da mesma forma..Tenta compilar e executar, ai cadastra 2 contatos e depois excluir o segundo, no caso o ultimo contato, que vai ver o problema quando for mostrar os nomes e telefones