Blue Dark 0 Denunciar post Postado Abril 10, 2009 Bem, sou novo no fórum e estou começando a aprender C e estava tentando fazer um jogo da Forca, porém me deparei com um pequeno problema.... Eu utilizei o seguinte código para 'pegar' a letra digitada: char Letra; scanf("%c%*c",&Letra); Quando o usúario digita apenas 1 caractere tudo ocorre bem.. ele grava o caracter na variavel e "descarta" o enter (\n), porém quando ele digita mais de 1 caractere da problema pois (acredito eu) ele grava o 1º caractere e descarta o 2º e o resto (os outro caracteres e o \n) ficam no buffe e quando vai digitar o próximo caractere não vai =|.. (pelo menos é o que eu acho que acontece O.o) Como eu posso fazer para que ele pegue apenas o 1º caractere e descarte o resto (inclusive o \n).. Desde já obrigado pela ajuda =D Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Abril 10, 2009 É possivel resolver o seu problema de vááááárias formas... você pode mudar essa variável de char para char* e pegar uma string inteira: char letras[20]; //tenha certeza que há espaço para guardar tudo, caso contrário acontecerá um overflow char letra; scanf("%[^\n]%*c", letras); //vamos mandar ele ler tudo, inclusive espaços, até encontar um '\n' e descartar esse '\n' letra = letras[0]; ou, você pode pegar o primeiro caractére e jogar fora todos os outros: char letra; letra = fgetc(stdin); while (fgetc(stdin) != '\n'); //ele vai ficar preso nessa linha até digitarem um '\n'. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif obs.: ainda bem que você não faz parte da geração de programadores fflush(stdin), que por sinal até resolveria seu problema, parcialmente. hahahahahaha! parabéns! Compartilhar este post Link para o post Compartilhar em outros sites
Blue Dark 0 Denunciar post Postado Abril 10, 2009 Vlw.. Ajudou bastante.... Ps: Comecei a usar o %*c depois que li um tópico seu =P Vlw mesmo pela ajuda ^^ Se quiserem podem marcar o tópico como resolvido =) http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Abril 10, 2009 Ainda bem que pude ajudar! :D abraços! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites