Comparar caractere em C
-
Grupo:
Membros
-
Posts:
1
-
Cadastrado:
06-novembro 09
Postou 06 novembro 2009 - 21:41
olá, preciso fazer um laço do tipo: "enquanto uma variavel for 's' executa uma determinada sequencia de codigos".
ex:
int main()
{
char x;
printf("deseja executar o programa?S/N: ");
scanf("%c", &x);
while(x=='s'){
printf("ok");
printf("deseja executar novamente?s/n: ");
scanf("%c", &x);
}
}
a ideia do programa é mais ou menos isso, mas essa estrutura simplesmente não funciona. Alguém sabe me dizer qual estrutura devo usar para fazer um laço com caractere?
grato!
Este post foi editado por quitZAUMMM: 06 novembro 2009 - 22:16
Razão por editar:: Inclusão da tag [code]

- No pain, No gain
-
-
Grupo:
Moderadores
-
Posts:
2971
-
Cadastrado:
24-outubro 07
-
Sexo:Masculino
-
Localização:São Paulo
Postou 06 novembro 2009 - 22:15
-
Grupo:
Membros
-
Posts:
8
-
Cadastrado:
09-novembro 09
-
Sexo:Masculino
Postou 10 novembro 2009 - 22:50
_
Acho q esta ocorrendo buffer do teclado...
para limpar isso você pode usar o comando 'fflush(stdin)'
#include<stdio.h>
int main()
{
char x;
printf("deseja executar o programa?S/N: ");
fflush(stdin); /*coloque esse comando antes do scanf para limpar buffer*/
scanf("%c", &x);
while(x=='s'){
printf("ok");
printf("deseja executar novamente?s/n: ");
fflush(stdin);
scanf("%c", &x);
}
}
Aki funcionou... espero ter ajudado
Att

- Computer Science student.
-
-
Grupo:
Moderadores
-
Posts:
705
-
Cadastrado:
26-dezembro 07
-
Sexo:Masculino
-
Localização:Portugal
Postou 11 novembro 2009 - 07:16
JAMAIS USE FFLUSH(STDIN) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Siga o que o QuitZAUMMMM disse, e dê uma lida no tópico "Porque NÃO utilizar fflush(stdin)", que ele inclusive já disponibilizou o link para entender o porque.
-
Grupo:
Membros
-
Posts:
8
-
Cadastrado:
09-novembro 09
-
Sexo:Masculino
Postou 11 novembro 2009 - 15:12
_
Ja vi q vou aprender muito aki no forum...
Vlw
1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)