Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafael.t.a

[Resolvido] Alguém sabe o porque?

Recommended Posts

#include<stdio.h>

 

int main(){

char nome[50];

int i = 0;

 

do{

printf("Entre com nome: ");

gets(nome);

}while(nome == 13);

 

}

 

/* SE EU SO APERTASSE ENTER ESTE LAÇO DEVERIA FICAR RODANDO, MAS ISTO NÃO ACONTESSE */

 

AJUDAS, PORFAVOR...

Compartilhar este post


Link para o post
Compartilhar em outros sites

gets() ignora o '\n', logo, a string torna-se uma string vazia em vez de uma quebra de linha.

Troque 10 por 0 e teste de novo.

 

 

Use fgets()

 

Teste:

#include<stdio.h>

int main(){
char nome[50], c;
int i = 0;

do{
printf("Entre com nome: ");
fgets(nome, 50, stdin);
printf("Você digitou: '%s'\n", nome);
}while(nome[0] == 10); // ENTER NA TABELA ASC

}

fgets() é melhor pois evita estouro de buffer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao invés de ficar colocando números mágicos prefira (int)'\n'.

 

13 é ASCII p/ \r, e não p/ \n.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.