Ir ao conteúdo
  • Cadastre-se
dantepw

IF automático em C?

Recommended Posts

Olá! eu tenho uma parte no meu programa q o usuário tem q apertar uma tecla e aí faz as coisas específicas [através de um IF].

Só que eu gostaria q essa parte fosse automática, ou seja, eu não queria que o usuário apertasse a tecla. Alguém pode me ajudar, por favor?

Exemplo:

#include <stdio.h>

#define sp 32 //tecla espaço

char tecla;

int main (){

if (tecla == sp){

//faça tal coisa

}

getch()

return 0;

}

Eu já tentei tirar o IF, mas ele não vai direto! Para quem quiser saber, é um Menu com setas em C puro q eu estou fazendo. Depois dessa pequena condição ele vai para uma grande série de IFs.

Obrigado de qualquer forma!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok! Eu fiz um exemplo um pouco menor (com 2 menus e sem usar as setas) só para você entender o que estou dizendo! :)

O problema é que, o usuário tem q apertar a letra A para começar o menu. Eu não quero q ele aperte nada, quero que vá direto!

Código:

#include <stdio.h>

#include <conio.h>

#include <windows.h>

void gotoxy(); //como padrão, se declara essa função para poder usar o GOTOXY

int main()

{

int x = 10, y; //O X é o espaço horizontal, Y é o espaço vertical. aqui estou falando

char tecla;

printf("Movimente o menu com a tecla A & B. Para selecionar um menu,\naperte a letra K.\n\nAperte A para continuar.");

inicio:

tecla = getch();

gotoxy(x, y);

printf("\b \b");

gotoxy(15,10);

printf("Menu 1");

gotoxy(15,15);

printf("Menu 2");

int j;

if (tecla == 'a'){

y = 10;

gotoxy(x,y); //10

printf(">");

//printf("\b \b");

goto inicio;

}

if (tecla == 'b'){

y = 15;

gotoxy(x,y); //15

printf(">");

//printf("\b \b");

goto inicio;

}

if (tecla == 'k' && y == 10){

system("cls");

printf("Você selecionou o menu 1.");

}

if (tecla == 'k' && y == 15){

system("cls");

printf("Você selecionou o menu 2.");

}

}

void gotoxy(x, y)

{

HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

COORD position = {x, y};

SetConsoleCursorPosition(handle, position);

}

EDIT:

Acabei de notar que o problema é que eu declarei tecla = getch(), o que é necessário... Então eu precisava que o próprio programa desse um "clique" para ir direto, entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado por toda ajuda fornecida, amigo! Eu acabei solucionando meu problema de outra forma. No meu código mais complexo, que segue mais ou menos esse exemplo que postei para você, eu mudei o tecla = getch(); de lugar e postei um printf(">"); do cursor inicial, assim dando a impressão que o menu já foi iniciado. E como ele vai direto para a sessão de Ifs necessárias, se o usuário apertar Enter logo de cara ele entra no primeiro Menu. Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×