Boa tarde, gostaria de deixar aqui minha dúvida sobre um código que fiz. É um jogo da forca e ele até está funcionando bem, porém quando o usuário insere um caractere especial, ele simplesmente não faz a leitura. Por exemplo, se a palavra a ser adivinhada pelo(s) jogador(es) for " óculos ", na hora que o usuário inserir uma letra com o respectivo acento ( no caso é o acento agudo no 'o' ) irá aparecer na tela qualquer coisa, menos a letra 'O' com o acento. Deve ficar mais claro com o código (assim espero kkk)
#include<stdio.h>#include<stdlib.h>#include<locale.h>#include<string.h>#include<conio.h>
main(){
setlocale(LC_ALL,"portuguese");char tentativa, palavra[200], incognita[200];int cont=0, quant_cp, final=0, aux=0, ind_copy=0;
printf("\n\t\t\t\t\tJOGO DA FORCA");
printf("\n\nInsira a palavra a ser adivinhada : ");
setbuf(stdin,NULL);
gets(palavra);
quant_cp = strlen(palavra);// Pega a quantidade de caracteres da palavra inserida
system("cls");
printf("\n\t\t\t\t\tJOGO DA FORCA");
printf("\n\nLembre-se de que espaços são como letras.");
printf("\n\n\n\n\t\t");for(cont=0; cont<quant_cp; cont++){
incognita[cont]='_';// Coloca "underlines" em um vetor para ser impresso // de acordo com a quantidade de caracteres }do{
system("cls");
printf("\n\t\t\t\t\tJOGO DA FORCA");
printf("\n\nLembre-se de que espaços são como letras.");
printf("\n\n\n\n\t");for(cont=0; cont<quant_cp; cont++){
printf("%c ", incognita[cont]);// Imprime os "underlines" na tela}
printf("\n\nInsira uma letra : ");
setbuf(stdin,NULL);
tentativa = getch();for(cont=0; cont<quant_cp; cont++)// Verificar se a letra foi inserida anteriormente, evitando o término {// do jogo de forma indesejada.if(tentativa == incognita[cont]){goto jump;}}for(cont=0; cont<quant_cp; cont++){if(tentativa == palavra[cont]){
incognita[cont]= tentativa;// Armazena a letra correta em icognita
final++;// Faz o incremento. Quando "final" tiver um valor igual à quantidade de caracteres (quant_cp) da palavra inserida// o programa é encerrado. }}
jump:for(cont=0; cont<quant_cp; cont++){
printf("%c ", incognita[cont]);}}while(final!=quant_cp);
printf("\n\nParabéns, você venceu !");return0;}
Pergunta
Celestino Alona
Boa tarde, gostaria de deixar aqui minha dúvida sobre um código que fiz. É um jogo da forca e ele até está funcionando bem, porém quando o usuário insere um caractere especial, ele simplesmente não faz a leitura. Por exemplo, se a palavra a ser adivinhada pelo(s) jogador(es) for " óculos ", na hora que o usuário inserir uma letra com o respectivo acento ( no caso é o acento agudo no 'o' ) irá aparecer na tela qualquer coisa, menos a letra 'O' com o acento. Deve ficar mais claro com o código (assim espero kkk)
Link para o comentário
Compartilhar em outros sites
2 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.