registrador em C [RESOLVIDO]

1. registrador em C [RESOLVIDO]

felipe silva
lipman

(usa Debian)

Enviado em 15/06/2016 - 11:43h

boas, estou com um simples problema...
estou criando um programa de registro, mas está dando uns erro na execução...
em vez de ele pedir nome primeiro e depois a idade, está ocorrendo isso:
nome completo: idade:
e quando peço para ler o arquivo ele tambem pede dados, nome idade etc...
aqui esta o codigo:

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

int main ()
{
char sair [1];
char nome [100];
int idade;
int mes;
int ano;
int dia;
char cpf [30];
char rg [30];
int r;
FILE *g;

printf ("**************************\n");
printf ("(1) registrar\n");
printf ("(2) ler registro\n");
printf ("(3) deletar registro\n");
printf ("**************************\n");
printf ("o que deseja: ");
scanf ("%i", &r);

switch (r){

case 3:
remove ("registro.txt");
printf ("registro deletado\n");

case 2:
g = fopen ("registro.txt", "r");
printf ("presione 1 para sair\n");
scanf ("%i", &sair);
fclose (g);
case 1:
g = fopen ("registro.txt","a");

printf ("nome completo: ");
fgets (nome, 100, stdin);

fprintf (g, "%s\n", nome);

printf ("idade: ");
scanf ("%i", &idade);

fprintf (g, "%i\n", idade);

printf ("data de nascimento\n");
printf ("dia: ");
scanf ("%i", &dia);



printf ("mes: ");
scanf ("%i", &mes);



printf ("ano: ");
scanf ("%i", &ano);

fprintf (g, "data de nascimento\n");
fprintf (g, "%i/%i/%i\n", dia, mes, ano);

printf ("CPF: ");
fgets (cpf, 30, stdin);

fprintf (g, "%s", cpf);

printf ("RG: ");
fgets (rg, 30, stdin);
fprintf (g, "%s", rg);







fprintf (g, "\n");
fclose (g);
exit (1);


}


printf ("desenvolvido por felipe silva\n");
printf (". natividade RJ\n");
printf ("presione qualquer tecla para sair\n");
getchar ();


return EXIT_SUCCESS;
}
agradeço pela ajuda desde ja!!!



  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 15/06/2016 - 11:57h

Deve haver centenas de tópicos no fórum sobre remoção de caracteres remanescentes de leituras anteriores no buffer de entrada (geralmente espaços ou caracteres de quebra de linha). Faça uma busca, e escolha uma solução (mas não use acochambrações porcarias como fflush(stdin) ou setbuf(...)!).

3. Re: registrador em C [RESOLVIDO]

felipe silva
lipman

(usa Debian)

Enviado em 15/06/2016 - 11:58h

ok, vou procurar!


4. Re: registrador em C [RESOLVIDO]

felipe silva
lipman

(usa Debian)

Enviado em 15/06/2016 - 15:04h

consegui usando getchar () antes dos fgets e scanf's






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts