thiano9 0 Denunciar post Postado Setembro 22, 2007 BOA NOITE........................... ESTOU FAZENDO UM CADASTRO EM C............SOU NOVATO NESSA LINGUAGEM.............O PROBLEMA DESSE CADASTRO É QUE QUANDO A VARIAVEL É O DO TIPO INTEIRO, DA ERRO.... EXEMPLO, TENHO UM CAMPO CHAMADO CODIGO DE LIVRO, QUANDO A PESSOA DIGITA O NUMERO 1, CADASTRA NORMAL.............MAS NA HORA DA BUSCA APARECE UNS 7 NUMEROS...... ISSO TAMBEM ACONTECE NO CAMPO RG E ANO DO LIVRO.... ABAIXO O CODIGO FONTE DESSE CADASTRO: #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> void inserir(void); void mostrar(void); int x; struct cadastro { char nome_aluno[40]; char curso[25]; int rg[5]; int codigo[2]; char titulo[30]; char autor[30]; char editora[20]; int ano_livro[2]; }; struct cadastro vetor[3]; int num; int main(void) { for(; { printf("\t\t\t\tCADASTRO DE BIBLIOTECA\n\n"); printf("********************************************************************************\n"); printf("1-Para adicionar dados\n"); printf("2-Para mostrar dados\n"); printf("3- Sair\n"); scanf("%d",&num); switch(num) { case 1: inserir(); break; case 2: mostrar(); break; case 3: exit(0); default: puts("TENTE NOVAMENTE"); } } getchar(); } void inserir(void) { for(x=0; x<3; x++) { fflush(stdin); printf("\n\n\nDigite o Nome do aluno: "); gets(vetor[x].nome_aluno); fflush(stdin); printf("Digite o RG: "); scanf("%d", vetor[x].rg); fflush(stdin); printf("Digite o curso: "); gets(vetor[x].curso); fflush(stdin); printf("Digite o Codigo do livro: "); scanf("%d", vetor[x].codigo); fflush(stdin); printf("Digite o Titulo do Livro: "); gets(vetor[x].titulo); fflush(stdin); printf("Digite o nome do Autor: "); gets(vetor[x].autor); fflush(stdin); printf("Digite a Editora: "); gets(vetor[x].editora); fflush(stdin); printf("Digite o ano da publicacao: "); scanf("%d", vetor[x].ano_livro); fflush(stdin); } getche(); } void mostrar(void) { int x; for(x=0; x<3; x++) { printf("\n Nome do Aluno: %s",vetor[x].nome_aluno); printf("\n RG: %d",vetor[x].rg); printf("\n Curso do Aluno: %s",vetor[x].curso); printf("\n Codigo do Livro: %d",vetor[x].codigo); printf("\n Titulo: %s",vetor[x].titulo); printf("\n Autor do Livro: %s",vetor[x].autor); printf("\n Editora: %s",vetor[x].editora); printf("\n Ano da Publicacao: %d\n",vetor[x].ano_livro); printf("\n *******************************************************************************"); } } VALEU............ Compartilhar este post Link para o post Compartilhar em outros sites
Myho 2 Denunciar post Postado Setembro 22, 2007 Na função Inserir, você esta pegando os valores inteiros com o scanf() sem colocar o & na frente da variavel, entao ele nao esta recebendo o conteudo, mas sim o endereço da variavel. Soh mudei isso aqui no meu e funcionou legal. void inserir(void) { for(x=0; x<3; x++) { fflush(stdin); printf("\n\n\nDigite o Nome do aluno: "); gets(vetor[x].nome_aluno); fflush(stdin); printf("Digite o RG: "); scanf("%d", &vetor[x].rg); fflush(stdin); printf("Digite o curso: "); gets(vetor[x].curso); fflush(stdin); printf("Digite o Codigo do livro: "); scanf("%d", &vetor[x].codigo); fflush(stdin); printf("Digite o Titulo do Livro: "); gets(vetor[x].titulo); fflush(stdin); printf("Digite o nome do Autor: "); gets(vetor[x].autor); fflush(stdin); printf("Digite a Editora: "); gets(vetor[x].editora); fflush(stdin); printf("Digite o ano da publicacao: "); scanf("%d", &vetor[x].ano_livro); fflush(stdin); } getche();} Compartilhar este post Link para o post Compartilhar em outros sites
thiano9 0 Denunciar post Postado Setembro 22, 2007 FALA MYOU....beleza?????????ENTÃO CARA..........NA HORA DE INSERIR TA BELEZA, MAS NA HORA DE MOSTRAR O CADASTROTA DANDO ERROS NAS VARIAVEIS TIPO INTEIRO...........EXEMPLO, VOCE INSERE O CODIGO 1 E NA HORA DE MOSTRAR , APARECE UNS 7 NUMEROS..........4332451...........ISSO ACONTECE TAMBEM NO RG E ANO DO LIVRO.............VALEU CARA................. Compartilhar este post Link para o post Compartilhar em outros sites
Giovani 104 Denunciar post Postado Setembro 22, 2007 thiano9, seja muito bem vindo ao fórum iMasters! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Você pode, por gentileza, ler as Regras do Fórum iMasters. O título do tópico será editado, conforme essas regras Sai: DUVIDAS SOBRE CADASTRO DE BIBLIOTECA EM C Entra: Cadastro de Biblioteca em C Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Setembro 22, 2007 ENTÃO CARA..........NA HORA DE INSERIR TA BELEZA, MAS NA HORA DE MOSTRAR O CADASTROTA DANDO ERROS NAS VARIAVEIS TIPO INTEIRO...........EXEMPLO, VOCE INSERE O CODIGO 1 E NA HORA DE MOSTRAR , APARECE UNS 7 NUMEROS..........4332451...........ISSO ACONTECE TAMBEM NO RG E ANO DO LIVRO.............O erro está aparecendo porque voce está inserindo errado.- Primeiro: como o amigo disse voce precisa usar o operador & ele indica que voce quer gravar o valor no endereço da variável.printf("Digite o RG: "); scanf("%d", &vetor[x].rg); - Segundo: sua struct não está correta.struct cadastro { char nome_aluno[40]; char curso[25]; int rg[5]; int codigo[2]; char titulo[30]; char autor[30]; char editora[20]; int ano_livro[2]; };Qual o propósito de colocar int rg[5]?colocando isso voce está criando 5 variáveis inteiras com o nome de:rg[0]rg[1]rg[2]rg[3]rg[4]Então substitua assim:struct cadastro { char nome_aluno[40]; char curso[25]; int rg; int codigo; char titulo[30]; char autor[30]; char editora[20]; int ano_livro; }; http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
thiano9 0 Denunciar post Postado Setembro 22, 2007 FALA AI...........ENTÃO, NA HORA DE INSERIR TA CERTO, MAS NA HORA DE MOSTRAR ESTA ERRADO...........ELE COMPILA SE NENHUM ERRO.....................VOCE DIGITA INSERE CODIGO 1 E NA HORA DE MOSTRAR APARECE O MESMO ERRO DOS 7 NUMEROS............FALOU............ Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Setembro 22, 2007 FALA AI...........ENTÃO, NA HORA DE INSERIR TA CERTO, MAS NA HORA DE MOSTRAR ESTA ERRADO...........ELE COMPILA SE NENHUM ERRO.....................VOCE DIGITA INSERE CODIGO 1 E NA HORA DE MOSTRAR APARECE O MESMO ERRO DOS 7 NUMEROS............FALOU............Voce pode postar o código que está com erro?aguardo... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Myho 2 Denunciar post Postado Setembro 22, 2007 Voce fez as alteações? mesmo q antes de você postar aqui ele estivesse compilando e dando erro apenas na impressão dos dados na tela, nao significa exatamente q o erro era na função mostrar(). Faz as alterações propostas pelo Kandrade ai q vai funciona... E mais uma coisa, seria melhor RG ser um vetor de chars, pelo menos o meu RG é de 10 digitos, um inteiro nao comporta isso n... e ja q nao vai realizar calculos com ele...Flw Compartilhar este post Link para o post Compartilhar em outros sites
thiano9 0 Denunciar post Postado Setembro 22, 2007 E AI KANDRADE, AQUI ESTA O CODIGO:{int x; for(x=0; x<3; x++) { printf("\n Nome do Aluno: %s",vetor[x].nome_aluno); printf("\n RG: %s",vetor[x].rg); printf("\n Curso do Aluno: %s",vetor[x].curso); printf("\n Codigo do Livro: %d",&vetor[x].codigo); printf("\n Titulo: %s",vetor[x].titulo); printf("\n Autor do Livro: %s",vetor[x].autor); printf("\n Editora: %s",vetor[x].editora); printf("\n Ano da Publicacao: %d\n",&vetor[x].ano_livro); printf("\n *******************************************************************************"); } }MYHO, FIZ A ALTERAÇÃO DE INT PARA CHAR...............................NÃO PODERIA FAZER ISSO PARA O CODIGO E O ANO DO LIVRO???????????POIS EM AMBOS, NÃO IREI REALIZAR CALCULO ALGUM....................VALEU E ATE MAIS............. Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Setembro 22, 2007 voce corrigiu a struct como proposto?corrigiu a leitura das variáveis inteiras como proposto? Compartilhar este post Link para o post Compartilhar em outros sites
thiano9 0 Denunciar post Postado Setembro 22, 2007 fiz como foi proposto................ Compartilhar este post Link para o post Compartilhar em outros sites
thiano9 0 Denunciar post Postado Setembro 22, 2007 OPA...............AGORA RODOU LEGAL.......VALEU KANDRADE E MYHO.............................................ABRAÇOS E ATE MAIS............ Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Setembro 22, 2007 Foi nada!!!http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif OPA...............AGORA RODOU LEGAL.......VALEU KANDRADE E MYHO.............................................ABRAÇOS E ATE MAIS............ Compartilhar este post Link para o post Compartilhar em outros sites