Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //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.
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<locale.h>
- char texto [300]; // onde sera salvo todo o texto
- char texto2 [100];
- int opcao=0,n1,n2,n3,i=0;
- char nometemp [30];
- char enderecotemp [200];
- struct tipo_endereco
- {
- char Cidade[30];
- char Bairro[30];
- char Rua [30];
- char Numero [3];
- };
- struct tipo_cadastro
- {
- char Nome[30];
- char Telefone [11];
- };
- int main ()
- {
- setlocale(LC_ALL,"Portuguese");
- FILE *arquivo; // comando para manipulação de arquivos. Apontando para o ponteiro arquivo, variavel
- printf ("Selecione uma opção abaixo para começar\n");
- tipo_endereco Local;
- tipo_cadastro Contato;
- while (opcao!=3)
- {
- printf("\t\t\t\+______________________________________+\n");
- printf("\t\t\t\| |\n");
- printf("\t\t\t\| 1-Incuir |\n");
- printf("\t\t\t\| 2-Pesquisar |\n");
- printf("\t\t\t\| 3-Sair |\n");
- printf("\t\t\t\| |\n");
- printf("\t\t\t\+--------------------------------------+\n");
- scanf ("%d",&opcao);
- switch (opcao)
- {
- // cadastro de contato
- case 1:
- fflush (stdin);
- //salvando na memoria
- printf ("Você escolheu a opção 1 - Cadastrar contato \n");
- printf("Nome do Contato:");
- gets (Contato.Nome);
- printf("Telefone:");
- gets(Contato.Telefone);
- fflush(stdin);
- printf("Informe a Cidade:");
- gets (Local.Cidade);
- printf("Informe o Bairro:");
- gets (Local.Bairro);
- printf ("Informe a Rua:");
- gets (Local.Rua);
- printf("Informe o Numero da casa:");
- gets (Local.Numero);
- printf ("Contato Salvo com sucesso!\n");
- system ("pause");
- //salvar no arquivo de texto
- arquivo = fopen ("agenda.txt","a"); // abrir o arquivo em modo alteração
- fprintf (arquivo,"%s \n",Contato.Nome);
- fprintf (arquivo,"%s \n",Contato.Telefone);
- fprintf (arquivo,"%s ",Local.Cidade);
- fprintf (arquivo,"%s ",Local.Bairro);
- fprintf (arquivo,"%s ",Local.Rua);
- fprintf (arquivo,"%s ",Local.Numero);
- fprintf (arquivo,"%s","\n-----------------------\n"); // quebra de linha após cadatrar um contato
- fclose (arquivo); //fechado o arquivo
- break;
- // pesquisar contato
- case 2:
- fflush (stdin);
- printf ("Você escolheu a opção 2 - Pesquisa de contato\n");
- arquivo = fopen ("agenda.txt", "r"); // abrindo o arquivo em modo leitura
- 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
- {
- printf ("Erro arquivo agenda.txt não encontrado \n");
- system ("pause");
- return 0;
- }
- char procura [30]; // contato a ser pesquisado
- int resultado; //resultado da comparação
- printf ("Digite o nome do contato para pesquisa:");
- gets (procura);
- int tamanho;
- tamanho = strlen (procura); // calcular a quantidade de caracteres do nome a ser pesquisado
- printf ("Nome a ser procurado %s \n",procura); // nome que esta sendo procurado
- while (fgets (texto,300,arquivo)!= NULL) // carregar o conteudo do arquivo para a memoria
- {
- resultado = strncmp (procura,texto,tamanho); //comparação da string procura com o texto lido, ao achar, para a pesquisa
- if (resultado == 0)
- {
- fscanf (arquivo,"%s ",&nometemp);
- fscanf (arquivo,"%s ",&enderecotemp);
- printf ("Nome: %s",nometemp);
- printf ("Endereço: ",enderecotemp);
- break;
- }
- }
- if (resultado ==0)
- { //system ("cls");
- printf ("\nContato encontrado\n");
- }
- else
- printf ("Contato não encontrado\n");
- break;
- //fechar o programa
- case 3:
- printf ("Obrigado por usar esse programa. Pressione qualquer tecla para sair");
- exit (0);
- case 4:
- arquivo = fopen ("agenda.txt","r");
- while (fgets (texto,300,arquivo)!= NULL)
- {
- printf ("%s",texto);
- } }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement