• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Aezrel

gets que salta!

5 mensagens neste tópico

Antes de mais gostaria de dar as boas tardes a todos vocês. :)

Bom, a minha dúvida é a seguinte, estou a desenvolver um programa onde preciso de receber um nome de utilizador e uma password. Para isso tenho a função em baixo:

criar_conta()

{

char username[25];

char password[11];

FILE *fp = fopen("base_dados.txt", "a+");

puts("Insira o seu primeiro e ultimo nome: \n");

gets(username);

printf("Introduza a sua Password: \n");

gets(password);

fprintf(fp, "%s", username);

fprintf(fp, "%s", password);

fclose(fp);

Ora, não sei porquê mas o programa ao correr, salta a primeira gets e passa logo para a segunda. (as gets em questão, estão destacadas a azul).

Já experimentei também colocar scanf em vez de gets, mas ao fazer isso, acontece o oposto! Ao correr ele pede a primeira, mas salta a segunda...lol

Este é o meu primeiro programa com manipulação de ficheiros, se puderem dar uma ajuda!  :P

Já ando a tarde toda de volta disto e ainda não consegui descobrir o problema...

Já agora, algum de vocês sabe de alguma função em que o utilizador, ao escrever a password, apareçam ***    ?  Já procurei aqui no forum, mas a solução que apresentaram não funcionou no meu compilador  (Visual Studio) :bored: :hmm: :down: 

Agradeço desde já, a vossa atenção,

Marco

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Provavelmente tens algum caracter no buffer de entrada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Depende do caso...

Como é o primeiro que está a saltar, pressuponho que uses alguma função de leitura de dados antes. Tens que limpar o buffer depois de a usar, o que normalmente pode ser feito com um while(getchar()!='\n');

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora