Você está na página 1de 2

www.tiexpert.

net

Pg. 1 de 2

Funes de entrada
A entrada de dados algo muito importante para qualquer programa, que deve ser usado em conjunto com uma funo de sada. A funo de sada deve induzir o usurio a fazer uma ao, e a funo de entrada que vai armazenar esta ao do usurio.

Funo de Entrada de C
As funes de entrada de C so encontradas na biblioteca padro de entrada/sada, a STDIO.H. Toda entrada de dado deve ser armazenada em um endereo de uma varivel. A entrada de entrada de dados controlada pela funo SCANF. Todas as entradas que devem ser armazenadas devem estar entre aspas identificadas por uma mscara e para cada mscara deve conter um endereo de uma varivel. Para indicar o endereo de uma varivel basta antes do nome da varivel colocar o caracter que indica endereo, o "E comercial" (&). //EXEMPLO1 #include <stdio.h> int main (void) { int nr; printf ("Digite um numero: "); scanf ("%d", &nr); printf ("\n\n\nVoce digitou o numero: %d", nr); return 0; } Voc tambm pode especificar entradas mltiplas na mesma linha. //EXEMPLO2 #include <stdio.h> int main (void) { int a, b, r; printf ("Digite dois numeros para serem somados:\n"); scanf ("%d %d", &a &b); r=a+b; printf ("\nA soma de %d mais %d e igual a %d", a, b, r); return 0; } No programa do exemplo 2 podemos digitar dois nmeros separados por espao, tabulao ou enter e no final ele mostrar o resultado da soma.

Dicas importantes
Mesmo a funo scanf tendo a capacidade de receber vrios dados na mesma funo, o interessante apenas usar uma entrada de dado para cada scanf. Assim, teremos mais controle da entrada de dados. No possvel carregar uma cadeia de caracteres com a funo scanf, ou seja, se tiver um tipo de dado CHAR e entrarmos com uma frase, apenas a primeira letra ser lida. Um problema srio das funes de entrada de C que tudo do teclado considerado uma entrada, inclusive o ENTER. Ento, se digitarmos um nmero e apertarmos o ENTER, alm do http://www.tiexpert.net/programacao/c/scanf.php

www.tiexpert.net

Pg. 2 de 2

nmero tambm fica armazenado o ENTER, que atrapalhar futuras entradas de dados, podendo ocorrer de um dado no ser digitado porque o programa ir considerar que mesmo antes de digitarmos o dado foi dado um ENTER. Esse problema pode ser facilmente resolvido se digitarmos a funo GETCHAR () depois de cada SCANF. Ento, o exemplo 2 ficaria melhor dessa forma. Veja: /* EXEMPLO3 melhoramento do codigo do exemplo2 */ #include <stdio.h> int main (void) { int a, b, r; printf ("Digite o primeiro numero que sera somado:\n"); scanf ("%d", &a); getchar (); printf ("Digite o segundo numero que sera somado:\n"); scanf ("%d", &b); getchar (); r=a+b; printf ("\nA soma de %d mais %d e igual a %d", a, b, r); return 0; }
Autor: Denys William Xavier Este artigo est sob Licena Creative Commons Para ver uma cpia desta licena, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/ ou envie uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.

http://www.tiexpert.net/programacao/c/scanf.php

Você também pode gostar