Ir para conteúdo
Fórum Script Brasil
  • 0

Scanf Sem Tem Que Pressionar O Enter


Aircrash

Pergunta

Pessoal estou iniciando nesta linguagem e gostaria de tirar um dúvida, estou criando um menu do tipo

pressione 1 para fazer aquilo, 2 para fazer isso, 3 para acolá e assim por diante.

Porém se eu uso o scanf para ler a variável obrigatóriamente o usuária precisa digitar o número seguido de enter.

Gostaria do usuário digitasse o número e este já fosse armazenado na variável. tipo o getch().

tentei usar o getch() da seguinte forma

variavel = getch() o problema é que quando coloco a varíavel em uma estrutura de escolha a estrutura não consegue "entender" o valor ex:

printf("digite 1 para isso, 2 para aquilo");

scanf("%d", &variavel);

variavel = getch()

switch (variavel)

{

case 1:

faça isso;

case 2:

faça aquilo;

default:

faça acola;

}

Quando uso o código similar a este o swtch sempre cai na função default mesmo quando eu digito 1

se eu uso o scanf ele funciona direitinho, mas me obriga a pressionar o enter e eu não gostaria de ter que esperar o enter.

Alguém pode me auxíliar.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Olha eu também estou iniciando no C, estudando sozinho e tal, mas creio que tem algo meio errado aqui:

scanf("%d", &variavel); /*A função scanf irá capturar o 1 ou o 2*/
variavel = getch() /*Aqui você está colocando o valor da variável variavel como uma função, no caso getch(), que também serve para capturar algo digitado*/
switch (variavel) /*Switch, abre os cases com a intenção de executar o que o usuário escolheu, só que aí é que está. Você setou no scanf um valor para a variável e agora ta setando ela como função getch(). Por isto "não entende o valor".

Posso estar errado, porque sou iniciante como já disse, entretando acredito que seja isso.

Editado por Yakuza
Link para o comentário
Compartilhar em outros sites

  • 0

na verdade eu digitei errado, o comando scanf e o getch eu não uso junto eu coloquei somente como exemplo, mas o código é sem o scanf, quando eu uso sem o scanf ou seja com o getch do jeito que eu escrevi, o switch não funciona, agora se eu usar o scanf (sem o getch) o swtich funciona.

Na verdade o que eu coloquei foi o que eu sei (o que é muito pouco) se você tiver uma sugestão para que quando o cliente digitar uma tecla esta fosse armazenada em uma variavel sem a necessidade de pressionar o enter, me informe, por favor, o código que pode suprir esta necessidade.

Link para o comentário
Compartilhar em outros sites

  • 0

Caro aircrash,

O scanf() precisa necessariamente que seja digitado 'enter' para dar entrada do valor na variável.

O que você pode fazer é usar o getch() e com o switch comparar o caractere digitado.

Um exemplo:

.
.
.
variavel = getch();
switch(variavel){
  
  case '1': execute isso;break;
  case '2': execute aquilo;break;
  default: não execute nada;break;

}
.
.
.

Tá aí!

Link para o comentário
Compartilhar em outros sites

  • 0

Fressato uma palavra sua matou meu problema "caracter" eu tava levando em consideração que os caracteres 1,2,3 era numerais ou seja inteiros, por isso o scanf funcionava e o getch não.

colocando o ' apostrofo entre os números faz com que estes se tornem caracteres "char" epor isso funcionam com o getch() Que recebe um char em vez de um int.

To começando a gostar de C, este é apenas parte do trabalho que eu estou fazendo na faculdade para automatizar um autorama (Fazer ele contra voltas e tempos). Grande parte já está solucionada, mas este é o meu primeiro programa e tenho bastante dúvidas, ainda bem que achei este forum.

Obrigado pela ajuda de todos.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...