Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gates

função alterar

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.