Como controlar a entrada de dados em C.

Iniciado por williamjuan, 27 de Agosto de 2013, 15:54

tópico anterior - próximo tópico

williamjuan

Oi pessoal. Já procurei em todo canto mas não encontrei. Eu quero controlar o que o usuário pode digitar no meu programa em C.

Por exemplo. Se eu peço para ele entrar com a idade, que é um número inteiro, e ele entrar com qualquer outra coisa(um flutuante, uma letra, um espaço, um enter) quero poder fazer uma tratamento desse erro.

Quero também poder controlar o número máximo de caracteres que o usuário pode digitar quando estiver escrevendo uma string. Se a string possui 10 espaços, ele só pode digitar 10 espaços. Se ele tentar digitar o 11 simplismente o cursor não anda para frente, fica no mesmo lugar.

Tem como fazer isso? Não encontro guia em lugar algum na internet que ensine a fazer isso.

gwarah

"Cantar a beleza de ser um eterno aprendiz" (Gonzaguinha)

Felix

Citação de: gwarah online 28 de Agosto de 2013, 11:08
Isso acho que pode te ajudar:

http://alexandrems.wordpress.com/2010/03/12/problemas-com-entrada-de-dados-em-c/

[]s gwarah

hahahaha.... mundo pequeno mesmo.

Sabia que esse link não me era estranho, fui ver e é o blog de um ex-professor meu (que por coincidência já trabalhei com ele na mesma empresa)

irtigor

A primeira parte já havia sido respondida no outro tópico, a segunda é bem menos trivial, você tem que realmente entender o que é entrada e saída de dados, leia: http://www.chemie.fu-berlin.de/chemnet/use/info/libc/libc_6.html#SEC66

Pra permanecer no alto nível, você pode fazer a leitura no modo usual, e usar caracteres de escape/controle pra voltar no stream.

http://clc-wiki.net/wiki/C_language:Terms:Control_characters
http://en.wikipedia.org/wiki/ANSI_escape_code

E nessa altura, já vai ser melhor adotar algo como o ncurses, pra que o código permaneça portável.