Ir ao conteúdo
  • Cadastre-se

Nao sei qual o erro


tiotiopk

Posts recomendados

Boa tarde galera, então sou novo em programação ainda nao sei nada, mais tenho um trabalho para faculdade, no entanto nao sei meu erro...

 

segue meu codigo "main"

#include<stdio.h>#include<stdlib.h>#include<string.h> typedef struct email{ 	char email[64];}email; typedef struct endereco{	 char rua[64];	 char bairro[32];	 char cidade[32];	 char estado[2];}endereco; typedef struct data{	 int dia;	 int mes;	 int ano;}data;typedef  struct contato{    int cod;	 char nome[32];	 char sobrenome[32];	 char cel[16];	 char fixo[16];	 char ftra[16]; }contato;// Primeira duvida nao sei se to fechando e abrindo corretamente o arquivo, segundo ele nao ta gravando //e ta pulado,sei que o codigo esta imcompleto, so quero //fazer ele salvar off-line depois disso fica facil adicionar masi funções.... obrigadoint main (int bancoc,char const *bancov[]){ 	system("cls"); 	FILE  *banco; 	banco = fopen("contato.txt","w+");	struct endereco e[1000];	struct data d[1000];	struct email i[1000];	struct contato c[1000];	int qu=0,op,x=0,x1=0;	system("color 17");		printf("\t\t***Bem vindo a Agenda eletronica***\n");	printf("\t\t\t %d contatos cadastrados\n",x);	printf("Data: ");system("date/t\n");	printf("Digite o numero correspondente a fun%c%co...\n ",135,132);	printf("\n1)Para cadastrar um novo contato\n2)Mostar Todos os contatos\n3)Para pesquisar um contato\n4)Finalizar sessao\n");	scanf("%d",&op);	if( banco == NULL){		printf("Erro ao tentar abrir arquivo");	}else if (banco !=NULL){	switch (op){		case 1:{			printf("Digite o nome do contato a ser cadastrado\n");		fscanf(banco,"%s",&c[x].nome);		fflush(stdin);		printf("Digite o sobrenome do contato\n");		fscanf(banco,"%s",&c[x].sobrenome);		fflush(stdin);		printf("Digite o celular\n");		fscanf(banco,"%s",&c[x].cel);		fflush(stdin);		printf("Digite o telefone fixo\n");		fscanf(banco,"%s",&c[x].fixo);		fflush(stdin);		printf("Digite o telefone do trabalho do contato\n");		fscanf(banco,"%s",&c[x].ftra);		fflush(stdin);		printf("Digite a data de anivesario do contato (ex: 30 04 1996)\n");		fscanf(banco,"%d %d %d",&d[x].dia, &d[x].mes, &d[x].ano);		fflush(stdin);		printf("Digite a cidade do contato\n");		fscanf(banco,"%s",&e[x].cidade);		fflush(stdin);		printf("Digite o bairro do contato\n");		fscanf(banco,"%s",&e[x].bairro);		fflush(stdin);		printf("Digite apenas a sigla do estado do contato(ex: MG)\n");		fscanf(banco,"%s",&e[x].estado);		fflush(stdin);		printf("Digite o nome da rua\n");		fscanf(banco,"%s",&e[x].rua);		fflush(stdin);		printf("Digite o contato do email\n");		scanf("%s",&i[x].email);		fflush(stdin);		x++;		break;}		fclose(banco);			case 2:			for(x1=0;x1<x;x1++){			printf("codigo do contato %d\n",x);			printf("Nome do contato %s Sobrenome \n",c[x1].nome,c[x1].sobrenome);			printf("Telefone celular %c Telefone Fixo %c Telefone do trabalho %c \n",c[x1].cel,c[x1].fixo,c[x1].ftra);			printf("Aniversario do contato %d %d Email para contato \n",d[x1].dia,d[x1].mes,i[x1].email);			printf("Endereco: Estado %c Cidade %c Bairro %c\n",e[x1].estado,e[x1].cidade,e[x1].bairro);			printf("Rua %s\n",e[x1].rua);			printf("\n\n");					}			break;		case 3:						break;					}}	else {		printf("Erro desconhecido");	}	printf("\n1%c Periodo de Ci%cncias da Computa%c%co %c%c%c\n",167,136,135,132,33,33,33);	system("pause");	}

stdin=Entrada de dados;flu...=teclado ou seja limpar buff do teclado ja tirei isso mais ele continua pulando... :)

Link para o comentário
Compartilhar em outros sites

Segue meus comentários

#include<stdio.h>#include<stdlib.h>#include<string.h> typedef struct email{ 	char email[64];}email; typedef struct endereco{	 char rua[64];	 char bairro[32];	 char cidade[32];	 char estado[2];}endereco; typedef struct data{	 int dia;	 int mes;	 int ano;}data;typedef  struct contato{    int cod;	 char nome[32];	 char sobrenome[32];	 char cel[16];	 char fixo[16];	 char ftra[16]; }contato;// Primeira duvida nao sei se to fechando e abrindo corretamente o arquivo, segundo ele nao ta gravando //e ta pulado,sei que o codigo esta incompleto, so quero //fazer ele salvar off-line depois disso fica fácil adicionar mais funções.... obrigadoint main (int bancoc,char const *bancov[]){ 	system("cls"); 	FILE  *banco; 	banco = fopen("contato.txt","w+");	if( banco == NULL) // vc deve testar o erro na abertura do arquivo imediatamente após a tentativa		perror("Erro ao tentar abrir arquivo");	struct endereco e[1000];	struct data d[1000];	struct email i[1000];	struct contato c[1000];	int qu=0,op,x=0,x1=0;	system("color 17");		printf("\t\t***Bem vindo a Agenda eletronica***\n");	printf("\t\t\t %d contatos cadastrados\n",x);	printf("Data: ");system("date/t\n");	printf("Digite o numero correspondente a fun%c%co...\n ",135,132);	printf("\n1)Para cadastrar um novo contato\n2)Mostar Todos os contatos\n3)Para pesquisar um contato\n4)Finalizar sessao\n");	scanf("%d",&op);	switch (op){		case 1:{			printf("Digite o nome do contato a ser cadastrado\n");		fflush(stdin);		fgets(c[x].nome,100,stdin);		fscanf(banco,"%s",&c[x].nome); //se vc fizer isso a variavel "nome" deve ter algum conteúdo, por isso fiz o fgets antes		fflush(stdin);		printf("Digite o sobrenome do contato\n");		fgets(c[x].sobrenome,100,stdin);		fscanf(banco,"%s",&c[x].sobrenome);		fflush(stdin);		printf("Digite o celular\n");		fgets(c[x].cel,100,stdin);		fscanf(banco,"%s",&c[x].cel);		fflush(stdin);		printf("Digite o telefone fixo\n");		fgets(c[x].fixo,100,stdin);		fscanf(banco,"%s",&c[x].fixo);		fflush(stdin);		printf("Digite o telefone do trabalho do contato\n");		fgets(c[x].ftra,100,stdin);		fscanf(banco,"%s",&c[x].ftra);		fflush(stdin);		printf("Digite a data de anivesario do contato (ex: 30 04 1996)\n");		scanf("%d%d%d",&d[x].dia, &d[x].mes, &d[x].ano);		fscanf(banco,"%d %d %d",&d[x].dia, &d[x].mes, &d[x].ano);		fflush(stdin);		printf("Digite a cidade do contato\n");		fgets(e[x].cidade,100,stdin);		fscanf(banco,"%s",&e[x].cidade);		fflush(stdin);		printf("Digite o bairro do contato\n");		fgets(e[x].bairro,100,stdin);		fscanf(banco,"%s",&e[x].bairro);		fflush(stdin);		printf("Digite apenas a sigla do estado do contato(ex: MG)\n");		fgets(e[x].estado,100,stdin);		fscanf(banco,"%s",&e[x].estado);		fflush(stdin);		printf("Digite o nome da rua\n");		fgets(e[x].rua,100,stdin);		fscanf(banco,"%s",&e[x].rua);		fflush(stdin);		printf("Digite o contato do email\n");		fgets(i[x].email,100,stdin);		scanf("%s",&i[x].email);		fflush(stdin);		x++;		break;}		fclose(banco);			case 2:			for(x1=0;x1<x;x1++){			printf("codigo do contato %d\n",x);			printf("Nome do contato %s Sobrenome \n",c[x1].nome,c[x1].sobrenome);			printf("Telefone celular %c Telefone Fixo %c Telefone do trabalho %c \n",c[x1].cel,c[x1].fixo,c[x1].ftra);			printf("Aniversario do contato %d %d Email para contato \n",d[x1].dia,d[x1].mes,i[x1].email);			printf("Endereco: Estado %c Cidade %c Bairro %c\n",e[x1].estado,e[x1].cidade,e[x1].bairro);			printf("Rua %s\n",e[x1].rua);			printf("\n\n");					}			break;		case 3:						break;					}		printf("\n1%c Periodo de Ci%cncias da Computa%c%co %c%c%c\n",167,136,135,132,33,33,33);	system("pause");}
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!