Ir ao conteúdo
  • Cadastre-se

help!!!!! problema com gets


Wiiliam Oliveira

Posts recomendados

tenho que desnvolver um programa pra trabalho, é sobre cadastros de livros, mas acho que os gets nao estão lendo as informações e as vezes trava o programa, ai vai parte da programação, por favor, me ajudem!!!!!!!

#include <stdlib.h>

#include <stdio.h>

#include <ctype.h>

typedef struct cadlivro{

int codcat, pag; //codigo de catalogação e nº de paginas

char doado, nome[30], autor[30], editora[15];

};

#define TAM 500

int main(){

struct cadlivro exatas;

struct cadlivro humanas;

struct cadlivro biomedicas;

//variaveis auxiliares

int i;

//cadastro de livros

for(i=0;i<1;i++)

{

printf("Cadastro de Livros de Ciencias Exatas\n");

printf("Codigo de Catalogacao: ");

scanf("%d",&exatas.codcat);

printf("Doado(S/N): ");

gets(&exatas.doado);

exatas.doado = toupper(exatas.doado);

printf("Nome da Obra: ");

gets(&exatas.nome);

printf("Nome do autor: ");

gets(&exatas.autor);

printf("Editora do livro: ");

gets(&exatas.editora);

printf("Numero de Paginas: ");

scanf("%d",&exatas.pag);

}

return 0;

}

so lembrando q isso é parte da programação!!!!!!!

Link para o comentário
Compartilhar em outros sites

codcat não é um vetor, doado não é um vetor e pag também não é um vetor. Portanto isso está errado:

scanf("%d",&exatas.codcat);

gets(&exatas.doado);

scanf("%d",&exatas.pag);

nome, autor e editora é um vetor e não uma string portanto isso está errado:

gets(&exatas.nome);

gets(&exatas.autor);

gets(&exatas.editora);

Outra coisa com o gets não deve ser usado o &

Tente assim:

#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>

typedef struct cadlivro{
int codcat, pag; //codigo de catalogação e nº de paginas
char doado, nome[30], autor[30], editora[15];
};

#define TAM 500

int main(){

struct cadlivro exatas;
struct cadlivro humanas;
struct cadlivro biomedicas;

//variaveis auxiliares
int i;

//cadastro de livros
for(i=0;i<1;i++)
{
printf("Cadastro de Livros de Ciencias Exatas\n");
printf("Codigo de Catalogacao: ");
scanf("%d",&exatas.codcat);
printf("Doado(S/N): ");
scanf("%c",&exatas.doado);
exatas.doado = toupper(exatas.doado);
printf("Nome da Obra: ");
gets(exatas.nome);
printf("Nome do autor: ");
gets(exatas.autor);
printf("Editora do livro: ");
gets(exatas.editora);
printf("Numero de Paginas: ");
scanf("%d",&exatas.pag);
}
return 0;
}

Se quiser fazer mais de um cadastro, use vetores na declaração das variáveis das fichas.

Assim:

struct cadlivro exatas[10];       // 10 fichas
struct cadlivro humanas[10]; // 10 fichas
struct cadlivro biomedicas[10]; // 10 fichas

Link para o comentário
Compartilhar em outros sites

  • 8 meses depois...

as informaçoes sobre cada livro sao:

Titulo, autor, ano de lançamento e numero de registro.

O usuario deve informar atrasves do teclado, a qtidade d livros q dseja cadastras. Alem disso, deve informar atrasves do teclado, com odas as informaçoes de cada livro. Para que os dados nao sejam perdidos, salve-os em um arquivo com o nome livros.txt.

os dados sao salvos da seguntei maneira:

2 //1ª linha do arquivo contem o num d livros cadastrados

Linguagens de Programaçao // 2ª linha do arquivo contem o titulo do 1º livro

Mario Silva // 3ª linha contem o nome do autor do 1º livro

2002 // 4ª linha contem o ano de lançamento do 1] livro

1523 // 5ª linha contem o num d registro do 1º livro

(repete pro segundo assim sucessivmente)

COMO FAÇO???? pliiiix

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...