gates 0 Denunciar post Postado Janeiro 5, 2008 o meu programa está com alguns erros é possivel corrigirem por favor obrigado mais uma vez #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include <dos.h> void pesquisa(char pesq[]) { FILE *fd; char curs[15]; int telefone, existe=0; fd=fopen("nomesagenda","r"); while ((fscanf(fd,"%s", curs))!=EOF) if (!strcmp(curs, pesq)) { printf("\n\tNome: %s", curs); fscanf(fd,"\n%d", &telefone); printf("\n\tTelefone: %d\n", telefone); fscanf(fd,"\n"); existe=1; } else fscanf(fd,"\n\n"); if (existe==0) printf("Cadastro inexistente!\n"); getchar(); fclose(fd); } int mostralista() { char ch; printf("Lista de contactos :\n\n"); FILE *vx3; vx3 = fopen("contactos.amg" , "r"); ch=getc(vx3); // Lê um caracter do ficheiro "contactos.amg". while(ch!=EOF) //Enquanto o caracter nao chegar ao fim do ficheiro... { putchar(ch); // Mostra no monitor o ficheiro "contactos.amg". ch=getc(vx3); // Guarda o caracter ch no ficheiro "contactos.amg" } fclose(vx3); // Fecha o ficheiro "contactos.amg". getch(); } char inserir() { char nome[255]; char data_de_nascimento[10]; char opcao; int telefone; FILE *vx3; fflush(stdin); // Despeja os dados no disco vx3 = fopen("contactos.amg" , "a"); // Abre o ficheiro "contactos.amg". printf("Insira o nome do contacto: "); gets(nome); // Guarda o nome do contacto na variavel "nome". fflush(stdin); // Despeja os dados no disco printf("Insira o numero de telefone: "); scanf("%d", &telefone); // Guarda o numero do telefone na variavel"telefone". fflush(stdin); // Despeja os dados no disco printf("Insira a data de nascimento(DD.MM.AAAA): "); gets(data_de_nascimento); fflush(stdin); fprintf(vx3, "#%s#",nome); // Escreve no ficheiro "contactos.amg"o nome do contacto que foi inserido anteriormente. fprintf(vx3, "%d#", telefone); // Escreve no ficheiro"contactos.amg" o numero de telefone do contacto que foi inserido anteriormente. fprintf(vx3, "%s#\n", data_de_nascimento); // Escreve no ficheiro "contactos.amg" data de nascimento que foi inserida anteriormente. printf("Deseja inserir mais contactos? S/N \n"); fflush(stdin); // Despeja os dados no disco scanf(" %c", &opcao); // Guarda a opção na variavel "opcao". switch(opcao) // Verifica se a opção é "n" ou "s". { case 's' : case 'S' : inserir(); break; // Se for "s" chama outra vez a função"inserir" para inserir mais um contacto case 'n' : case 'N' : exit(1); break; // Se for "n" sai. } fclose(vx3); // Fecha o ficheiro "contactos.amg". } int main() { printf("\t\t\tAgenda Telefonica\n"); // Mostra o menu. printf(" Carregue no numero para ir para a opcao desejada :\n\n"); // Aparece amesagem "Carregue no numero para ir para a opção desejada :" printf("1 - Adicionar contacto\n"); // Aparece a mensagem "1 - Adicionar contacto" printf("2 - Consultar a agenda telefonica\n"); // Aparece a mensagem "2 -Consultar a agenda telefónica" printf("3 - Eliminar contacto\n"); // Aparece a mensagem "3- Eliminar contacto" printf("4 - Alterar contacto\n"); // Aprece a mensagem " 4 - Alterar contacto" printf("5 - Mostrar contactos que fazem anos num certo mes\n"); // Aparece a mensagem "5 - Mostrar todos os contactos que fazem anos num certo mes" printf("6 - Mostrar contactos que fazem anos numa certa data\n"); // Aparece a mensagem " 6 - Mostrar contactos que fazem anos numa determinada data" printf("0 - Sair\n\n\n"); // Aparece a mensagem "0 - Sair" char escolha; scanf(" %s", &escolha); // Guarda a opção escolhida. switch(escolha) // Verifica qual foi a opção. { case '1' : inserir(); break; // Caso a operação escolhida seja a "1" inicia o procedimento"inserir". case '2' : mostralista(); // Caso a opção escolhida seja "2" chama o procedimento"mostralista". break; case '0' : exit(1); // Caso a opção escolhida seja "0" sai. break; case 4: { printf("\n\tEntre com o Nome: "); scanf("%s",nome); getchar(); tamnome=strlen(nome); if (tamnome>15) { printf("O tamanho do nome passa de 15 letras.\n"); getchar(); getchar(); } else { pesquisa(nome); } } break; } } Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Janeiro 7, 2008 Quais os erros apresentados? Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Janeiro 8, 2008 Um erro q observei é q você nunca chamará a função alterar assim: case 4:, pois ela é char, faça assim: case '4':outra coisa tbm: você naum declarou as variaveis q esta usando dentro do main Volte a postar c tiver duvidas! Compartilhar este post Link para o post Compartilhar em outros sites