Advertisement
BrunoG92

Agenda com arquivo

Mar 22nd, 2019
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.84 KB | None | 0 0
  1. //Usando manipulação de arquivos ,crie uma agenda telefônica com um menu. Os dados do contato devem ser salvo em uma struct. Salve em //um arquivo txt no mesmo diretorio onde o programa foi executado. Nome e telefone deverão ter quebra de linha, o endereço deve ficar //em apenas uma linha.
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<string.h>
  5. #include<locale.h>
  6.  
  7. int opcao=0,n1,n2,n3,i=0;
  8. struct tipo_endereco
  9. {
  10.     char Cidade[30];
  11.     char Bairro[30];
  12.     char Rua [30];
  13.     int Numero;
  14.  
  15. };
  16.  
  17. struct tipo_cadastro
  18. {
  19.     char Nome[30];
  20.     int Telefone;
  21. };
  22. int main ()
  23. {
  24.     setlocale(LC_ALL,"Portuguese");
  25.     FILE *arquivo; // comando para manipulação de arquivos. Apontando para o ponteiro arquivo, variavel
  26.     arquivo = fopen ("agenda.txt","a"); // abrir o arquivo agenda.txt no modo modificação (append) para nao zerar o arquivo a cada execução do programa
  27.     printf("\t=====AGENDA DE CONTATOS ====\n");
  28.     printf ("Selecione uma opção abaixo para começar\n");
  29.     tipo_endereco Local;
  30.     tipo_cadastro Contato;
  31.     while (opcao!=3)
  32.     {
  33.  
  34.         printf ("1 - Salvar contato \n");
  35.         printf ("2 - Pesquisar contato \n");
  36.         printf ("3 - Sair da agenda \n");
  37.         scanf ("%d",&opcao);
  38.         switch (opcao)
  39.         {
  40.  
  41.         case 1:
  42.             fflush (stdin);
  43.             printf ("Você escolheu a opção 1 - Cadastrar contato \n");
  44.             printf("Nome do Contato: ");
  45.             gets (Contato.Nome);
  46.             printf("Telefone: ");
  47.             scanf("%d",Contato.Telefone);
  48.             fflush(stdin);
  49.             printf("Informe a Cidade: ");
  50.             gets (Local.Cidade);
  51.             printf("Informe o Bairro: ");
  52.             gets (Local.Bairro);
  53.             printf ("Informe a Rua: ");
  54.             gets (Local.Rua);
  55.             printf("Informe o Numero da casa: ");
  56.             scanf ("%d",&Local.Numero);
  57.             printf ("Contato Salvo com sucesso!\n");
  58.             system ("pause");
  59.             fprintf (arquivo,"Nome: %s ",Contato.Nome);
  60.             fprintf (arquivo,"Telefone: %d  \n",Contato.Telefone);
  61.             fprintf (arquivo,"Cidade: %s ",Local.Cidade);
  62.             fprintf (arquivo,"Bairro: %s ",Local.Bairro);
  63.             fprintf (arquivo,"Rua: % ",Local.Rua);
  64.             fprintf (arquivo,"Casa N°: %d  ",Local.Numero);
  65.             fprintf (arquivo,"%s","\n"); // quebra de linha após cadatrar um contato
  66.             break;
  67.  
  68.         case 2:
  69.             fflush (stdin);
  70.             printf ("Você escolheu a opção 2 - Pesquisa de contato\n");
  71.             FILE *arquivo;
  72.             arquivo = fopen ("agenda.txt", "r");
  73.             if (arquivo == NULL)  // Criado uma validação, se o ponteiro apontar para nulo, ou seja o arquivo agenda.txt nao existir ira mostra o erro
  74.             {
  75.                 printf ("Erro arquivo agenda.txt não encontrado \n");
  76.                 system ("pause");
  77.                 return 0;
  78.             }
  79.             char procura [30]; // contato a ser pesquisado
  80.             char texto [300]; // onde sera salvo todo o texto
  81.             int resultado; //resultado da comparação
  82.             printf ("Digite o nome do contato para pesquisa: ");
  83.             gets (procura);
  84.             while (fgets (texto, 300, arquivo)!= NULL)
  85.             {   //Para ler todo o texto, while com 3 paramentros : variavel onde sera salvo o texto, quantidade de caracteres, ponteiro.
  86. //leia todo o texto do arquivo de texto até achar um caracter nulo, sem ele, leria apenas uma linha do texto
  87.                 resultado = strncmp (procura,texto,5);
  88.                 printf ("Resultado :%d \n",resultado);
  89.                 fclose (arquivo);
  90.  
  91.             }
  92.             break;
  93.         case 3:
  94.             printf ("Obrigado por usar esse programa. Pressione qualquer tecla para sair");
  95.             break;
  96.             exit (0);
  97.         }
  98.  
  99.     }
  100.  
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement