Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Wiiliam Oliveira

help!!!!! problema com gets

Recommended Posts

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!!!!!!!

Editado por Wiiliam Oliveira

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola pessoas,

não sei se vai ocorrer esse problema, mas antes de ler uma String com o gets é bom limpar o buffer do teclado... As vezes isso da problema :lol:

fflush(stdin);

Abraços,

Thiago.

Compartilhar este post


Link para o post
Compartilhar em outros sites
nao entendi o porque do FOR se a condiçao é <1 ???:mellow:

Realmente não tem nenhuma utilidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×