Guest --Rodolfo -- Postado Agosto 30, 2008 Denunciar Share Postado Agosto 30, 2008 Tenho o seguinde codigo em C: printf("Tecle J para jogar ou T para testar o jogo:"); char mododejogo; scanf("%c",&mododejogo); while(mododejogo!='T'&& mododejogo!='t' && mododejogo!='j'&& mododejogo!='J'){ printf("%c\n",mododejogo); printf("Tecle J para jogar ou T para testar o jogo:"); scanf("%c",&mododejogo); }se eu vo digitando "L" e apertando enter aparece o seguinte:Tecle J para jogar ou T para testar o jogo:LLTecle J para jogar ou T para testar o jogo:Tecle J para jogar ou T para testar o jogo:LLTecle J para jogar ou T para testar o jogo:Tecle J para jogar ou T para testar o jogo:Parece que ele lia um caractere extra.eu tive que fazer o seguinte: printf("Tecle J para jogar ou T para testar o jogo:"); char mododejogo,cextra; scanf("%c%c",&mododejogo,&cextra); while(mododejogo!='T'&& mododejogo!='t' && mododejogo!='j'&& mododejogo!='J'){ printf("%c\n",mododejogo); printf("Tecle J para jogar ou T para testar o jogo:"); scanf("%c%c",&mododejogo,&cextra); }e deu certoTecle J para jogar ou T para testar o jogo:llTecle J para jogar ou T para testar o jogo:llTecle J para jogar ou T para testar o jogo:llTecle J para jogar ou T para testar o jogo:tdescobri q era o caractere 0(que parece ser o 'barrazero'(estou digitando o literal aqui e ele some ¬¬).por que ele aparece? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Agosto 31, 2008 Denunciar Share Postado Agosto 31, 2008 Não é . É \n. É o clássico problema do \n no buffer de entrada.Breakpoint 4, main () at tela.c:1010 scanf("%c",&mododejogo);1: mododejogo = 76 'L'(gdb) sBreakpoint 2, main () at tela.c:66 while(mododejogo!='T'&& mododejogo!='t' &&1: mododejogo = 10 '\n'Nem pense em usar fflush(stdin) p/ isso.#include <stdio.h> int main() { char mododejogo; do { printf("Tecle J para jogar ou T para testar o jogo:"); mododejogo = getchar(); getchar(); }while(mododejogo!='T'&& mododejogo!='t' && mododejogo!='j'&& mododejogo!='J'); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest -Rodolfo- Postado Setembro 5, 2008 Denunciar Share Postado Setembro 5, 2008 por que não usar o fflush? ele esta ajudando a não aparecer a mensagem varias vezes se o usuario digita varios caracteres, tipo, acontece Tecle J para jogar ou T para testar o jogo:kkkTecle J para jogar ou T para testar o jogo:Tecle J para jogar ou T para testar o jogo:com o fflush vai uma vez so Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Setembro 5, 2008 Denunciar Share Postado Setembro 5, 2008 http://www.gidnetwork.com/b-57.html Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --Rodolfo --
Tenho o seguinde codigo em C:
printf("Tecle J para jogar ou T para testar o jogo:");
char mododejogo;
scanf("%c",&mododejogo);
while(mododejogo!='T'&& mododejogo!='t' &&
mododejogo!='j'&& mododejogo!='J'){
printf("%c\n",mododejogo);
printf("Tecle J para jogar ou T para testar o jogo:");
scanf("%c",&mododejogo);
}
se eu vo digitando "L" e apertando enter aparece o seguinte:
Tecle J para jogar ou T para testar o jogo:L
L
Tecle J para jogar ou T para testar o jogo:
Tecle J para jogar ou T para testar o jogo:L
L
Tecle J para jogar ou T para testar o jogo:
Tecle J para jogar ou T para testar o jogo:
Parece que ele lia um caractere extra.eu tive que fazer o seguinte:
printf("Tecle J para jogar ou T para testar o jogo:");
char mododejogo,cextra;
scanf("%c%c",&mododejogo,&cextra);
while(mododejogo!='T'&& mododejogo!='t' &&
mododejogo!='j'&& mododejogo!='J'){
printf("%c\n",mododejogo);
printf("Tecle J para jogar ou T para testar o jogo:");
scanf("%c%c",&mododejogo,&cextra);
}
e deu certo
Tecle J para jogar ou T para testar o jogo:l
l
Tecle J para jogar ou T para testar o jogo:l
l
Tecle J para jogar ou T para testar o jogo:l
l
Tecle J para jogar ou T para testar o jogo:t
descobri q era o caractere 0(que parece ser o 'barrazero'(estou digitando o literal aqui e ele some ¬¬).por que ele aparece?
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.