• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

KiNgPiTo

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

10 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi bem a dúvida... mas para leres um caracter para uma variável utilizas o scanf da seguinte forma:

scanf("%c", &var);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Com o scanf podes ler apenas um caracter, mas penso que não podes impedir o utilizador de introduzir mais caracteres.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

KiNgPiTo apesar de dar um bocado mais trabalho, sempre podes fazer tu uma função que faça isso que pretendes! Usando getchar() chegas lá.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

KiNgPiTo apesar de dar um bocado mais trabalho, sempre podes fazer tu uma função que faça isso que pretendes! Usando getchar() chegas lá.

podes me dizer +/- como ??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros 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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora