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

Permitir Entrada De Um Só Char


edu.

Pergunta

Não sei se é muito complicado fazer isso, mas estou precisando que

quando o programa recebe uma entrada, não permitir que possa escrever demais.

Vamos supor que o programa pede um numero, 1 2 ou 3, para selecionar um ítem de um menu.

Se o cara digita "1 2 3", o programa irá reconhecer o 1, entrará na seção 1, e depois se não me engano, irá ficar no buffer o 2 e 3. E se tiver outra opção de escolha dentro do 1, ele vai querer selecionar a seção 2 dentro da seção 1.

Isso estraga o programa, então gostaria de saber se é possível que o programa não permita a entrada de 2 ou mais caractéres. Sei la, você digita um caracter, e quando tentar digitar outro, ele não permite, e não imprime. Porém, em que você possa apertar enter depois, pois com getchar já sei, e não é exatamento o que eu quero.

Ou então, algo mais específico, você poder determinar o tamanho de quantos caractéres você vai poder digitar por vez até apertar enter. Por exemplo, "Digite seu nome: ". e só permite 8 letras, mais do que isso ele não permite mais caractéres.

obrigado

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Na realidade, o que eu gostaria mesmo é poder analisar o string inteiro.

Se o cara digita "1 2", quando eu analiso normalmente, ele detecta apenas o numero 1, tirando tudo que vem depois do espaço.

Talvez um método melhor seria usando char, mas testei aqui e não consegui nada.

Quero que quando ele analise, ele veja que "1 2" != "1", o que não acontece, já que ele pega só a primeira parte.

Obs. com getchar não da certo, eu precisaria colocar um getchar para cada "espaço" que o cara coloca. Se ele digita "1 2 1 2 1 2", com o getchar só funcionaria para os primeiros caracteres.

Quem puder ajudar, vou agradecer muito, já que esse é o maior problema em todos os programas que faço.

Link para o comentário
Compartilhar em outros sites

  • 0

Use uma função que limpe o buffer, assim os caracteres "restantes" não influiciaram

no seu programa:

/* comeco do programa ... */

char opt;

....

getchar( opt ); /* Se entrar com "1 2 3", o "2 3" estara no buffer */

fflush( stdin ); /* Limpa o buffer .. */

...

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...