Eu com meu total amadorismo, estou aqui novamente para recorrer a com manja de verdade.
Tenho uma atividade da facul que diz o seguinte:
/*
* 4) Cadastrar e imprimir os dados de vários professores de um sistema de administração escolar:
* Nomes,Endereço, Cidade, CEP, Telefone, CPF e data de nascimento e qual curso em que se formou
*/
Até aí beleza ... resolvi usar o struct para fazer o cadastro .... como eu não sabia utilizar o struct, resolvi aprender a utilizá-lo antes de avançar no exercício e até que não tive muitos problemas, até chegar no último gets que não permite a inserção de dados pulando direto pros printf abaixo.
Resolvi usar o gets para poder ler espaços na variável.
Meu sistema operacional é o Debian e uso IDE Netbeans.
Abaixo segue as maneiras que tentei corrigir e todos me retornaram o mesmo resultado.
scanf ("%s", cad_professores.curso_form);
gets (cad_professores.curso_form);
#include <iostream>
using namespace std;
cin.getline (cad_professores.curso_form, 30);
fflush (stdin); // antes de cada gets e scanf
NÃO QUERO A SOLUÇÃO DO EXERCÍCIO, QUERO SOMENTE APRENDER COMO RESOLVER ESSE PROBLEMA DO GETS ... PARA RESOLVER O EXERCÍCIO TENHO QUE QUEBRAR A CABEÇA MAIS UM POUQUINHO .... EMBORA APARENTA SER FÁCIL.
Pergunta
Anderson G.
Boa tarde developers !!!!
Eu com meu total amadorismo, estou aqui novamente para recorrer a com manja de verdade.
Tenho uma atividade da facul que diz o seguinte:
/*
* 4) Cadastrar e imprimir os dados de vários professores de um sistema de administração escolar:
* Nomes,Endereço, Cidade, CEP, Telefone, CPF e data de nascimento e qual curso em que se formou
*/
Até aí beleza ... resolvi usar o struct para fazer o cadastro .... como eu não sabia utilizar o struct, resolvi aprender a utilizá-lo antes de avançar no exercício e até que não tive muitos problemas, até chegar no último gets que não permite a inserção de dados pulando direto pros printf abaixo.
Resolvi usar o gets para poder ler espaços na variável.
Meu sistema operacional é o Debian e uso IDE Netbeans.
SEGUE ABAIXO O CÓDIGO.
#include <stdlib.h> #include <stdio.h> /* * */ struct cadastro { char nome [30]; char endereco [30]; char cidade [30]; int cep; int telefone; char cpf [14]; char dtnasc [10]; char curso_form [30]; }; main() { struct cadastro cad_professores; printf ("Nome: "); gets (cad_professores.nome); printf ("Endereço: "); gets(cad_professores.endereco); printf ("Cidade: "); gets (cad_professores.cidade); printf ("CEP: "); scanf ("%d", &cad_professores.cep); printf ("Telefone: "); scanf ("%d", &cad_professores.telefone); printf ("CPF: "); scanf ("%s", cad_professores.cpf); printf ("Data de nascimento: "); scanf ("%s", cad_professores.dtnasc); printf ("Curso de Formação: "); gets (cad_professores.curso_form); printf ("\n\n\n"); printf ("\n Nome: %s", cad_professores.nome); printf ("\n Endereço: %s", cad_professores.endereco); printf ("\n Cidade: %s", cad_professores.cidade); printf ("\n CEP: %d", cad_professores.cep); printf ("\n Telefone: %d", cad_professores.telefone); printf ("\n CPF: %s", cad_professores.cpf); printf ("\n Data de nascimento: %s", cad_professores.dtnasc); printf ("\n Curso de Formação: %s \n\n", cad_professores.curso_form); return (EXIT_SUCCESS); }Abaixo segue as maneiras que tentei corrigir e todos me retornaram o mesmo resultado.scanf ("%s", cad_professores.curso_form); gets (cad_professores.curso_form); #include <iostream> using namespace std; cin.getline (cad_professores.curso_form, 30); fflush (stdin); // antes de cada gets e scanfNÃO QUERO A SOLUÇÃO DO EXERCÍCIO, QUERO SOMENTE APRENDER COMO RESOLVER ESSE PROBLEMA DO GETS ... PARA RESOLVER O EXERCÍCIO TENHO QUE QUEBRAR A CABEÇA MAIS UM POUQUINHO .... EMBORA APARENTA SER FÁCIL.
Me socorram .....
valeu !!!
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.