Jump to content

Da para limitar o scanf para pedir apenas 1 caracter???


KiNgPiTo

Recommended Posts

boas...

num codigo k fiz, utilizei o gotoxy(x,y) para posicionar o cursor dentro de 2 parêntesis ----- printf("( )");

mas se calhar de inserir 2 números, o 2º parêntesis desaparece... o 2º algarismo sobrepõe-se .

keria saber se da para apenas no scanf que pede a opcao que vai tar entre os 2 parentesis apenas deixa-se introduzir 1 numero... 1 caracter...

Obrigado

Link to comment
Share on other sites

Olá,

Para ler apenas um caracter  nem precisas de usar uma função como o scanf...

Podes usar o getchar(), e se quiseres garantir que o utilizador não prime mais do que uma tecla podes usar a função getch(), que responde assim que é premida uma tecla.

Cumprimentos

A solução de um problema, por mais complicado que seja, tem de ser simples e clara. Caso contrário criamos um novo problema!O caminho mais fácil é muitas vezes o melhor caminho!

Link to comment
Share on other sites

Olá,

Para ler apenas um caracter  nem precisas de usar uma função como o scanf...

Podes usar o getchar(), e se quiseres garantir que o utilizador não prime mais do que uma tecla podes usar a função getch(), que responde assim que é premida uma tecla.

Cumprimentos

tb ja tinha pensado nisso... mas so passa o scanf a frente assim k introduzido o valor da variavel e este so e introduzido assim k der Enter... eu keria era so dar pra escrever um valor... se carregasse noutra tecla essa substitui-se o k tinha posto anteriormente

Link to comment
Share on other sites

Faz um ciclo que funcione enquanto não for premido ENTER.

Assim, por cada vez que o user introduz um char ele guarda numa variavel (atraves do getchar). Enquanto nao for premido ENTER ('\n') ele vai fazendo sempre a actualizaçao do conteudo da variavel com o novo char.

Por ex, se o user introduzisse:

abcdefghij ENTER

O char que ficaria guardado na variavel seria j. Esse seria portanto o retorno da tua função.

Penso ser isto o que pretendes.

Link to comment
Share on other sites

Ele pretende escrever no ecrã cada tecla pressionada.

A solução seria mais próxima do que o FABIO disse: utilizar a função getchar dentro de um while e só sair deste quando a tecla lida fosse enter. Para não apagar o parêntesis, basta fazer um putc(8) de cada vez que for lido um caracter, que faz com que o cursor volte para trás.

Desaparecido.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.