- Tem algo de errado?
+ Responder ao Tópico
-
Tem algo de errado?
Olá galera blz? essa é minha primeira visita e tenho a seguinte duvida.
estou montando um menu em C e usando o comando getch() e armazenando em uma variavel... mas nao consigo usar essa variavel no IF......
codigo:
#include<curses.h>
#include<stdio.h>
int main(void) {
initscr();
int opcao ;
for (;
{
move(3,5);
printw("[1] Opcao numero 1.");
move(5,5);
printw("[2] Opcao numero 2.");
move(7,5);
printw("Opcao:");
opcao=getch();
move(10,5);
if (opcao==1){
printw("Voce digotou a opcao: 1");
getch();
break;
}else{
printw("Voce digitou a opcao: 2");
getch();
break;
}
}
endwin();
}
-
Tenta usar opcao do tipo char.
char opcao;
opcao = getch();
e faz a comparação com strcmp (não lembro a syntaxe).
-
Não pessoal o problema é o seguinte... Tudo bem você recebendo um char e jogar em um int. O problema é você compara o int com 1. Porque o ao jogar o valor '1' (char) em um int ele vira outro valor, que é correspondente ao caracter '1' da tabela ASCII, isto é 49 (em int). Se vc quiser pode fazer o seguinte código
int opcao;
(...)
opcao=getch();
if(opcao == 49){
(...)
}else{
(...)
}
ou caso queira evitar a consulta à tabela ASCII utilize o seguinte código:
char opcao;
(...)
opcao=getch();
if(opcao == '1'){
(...)
}else{
(...)
}
Não se esqueça das aspas simples no trecho opao == '1' pois indica que é um char.
Avisa ai se der tudo certo, blz?!