Ir ao conteúdo
  • Cadastre-se
NewCod

Duvida scanf e gets c++

Recommended Posts

Olá amigos

Duvida, quando uso scanf ele não "pega" o resto da frase apos o espeço já com o gets "pega" normal.

exemplo

___________________________________________

int main ()

{

char azul[110];

printf("Digite seu nome: ");

scanf("%s", azul);

printf("seu nome e: %s", azul);

printf("\n");

system("PAUSE");

return 0;

}

___________________________________________

No codigo acima digamos que respondo

Joaozinho Bahia Salvador

ele responde apenas Joao

já com o gets(azul); no lugar do scan

responde completo, porque isso?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso do scanf ele pega toda a linha ate encontrar o primeiro espaço ou um enter, ja o gets captura toda a linha até encontrar um enter.

Mas o scanf pode captura uma linha completa com espaços, para isso use


char azul[110];

printf("Digite seu nome: ");
scanf("%[^\n]", azul);

printf("seu nome e: %s", azul);
printf("\n");

Ele vai capturar tudo ate encontrar um enter. Isso vai dar problemas com o buffer do teclado quando você estiver usando mais de um scanf no seu programa, basta usar um getchar() pra limpar o buffer

Compartilhar este post


Link para o post
Compartilhar em outros sites
Não seria fflush para limpar o buffer do teclado?

O fflush funciona bem apenas nos sistemas windows já no linux tem comportamento imprevisível(muitos dizem que não funciona ou não faz nada, nunca testei). E o getchar funciona em ambas, sua função principal é remover o '\n' que fica após cada enter

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

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×