sexta-feira, 18 de fevereiro de 2011

Entrada e Saída em C

Este post descreve superficialmente algumas das funções de "entrada" (input) e de "saída" (output) mais importantes da linguagem C. Todas estão na biblioteca stdio. Portanto, seu programa deve ter um #include <­stdio.h> para usar essas funções.

- printf

A função printf (print formatted) exibe na tela do monitor uma lista formatada de números, caracteres, strings, etc.

Sintaxe da função:

printf (string_de_controle,lista_de_argumentos);

Na string_de_controle teremos uma descrição de tudo que a função vai colocar na tela. Isto é feito usando-se os códigos de controle, que usam a notação %. Com isso, indicamos quais, de qual tipo e em que posição estão as variáveis a serem apresentadas.

Alguns dos códigos %:

Código

Significado

%d

Inteiro

%f

Float

%c

Caractere

%s

String

%%

Coloca na tela um %

Alguns exemplos de printf() e o que eles exibem:

printf ("Teste %% %%") Teste % %

printf ("%f",40.345) 40.345000

printf ("%2.2f",40.345) 40.34

printf ("Um caractere %c e um inteiro %d",'D',120) → Um caractere D e um inteiro 120

printf ("%s e um exemplo","Este") Este e um exemplo

printf ("%s%d%%","Juros de ",10) Juros de 10%

Códigos de Barra Invertida

Código

Significado

\b

Retrocesso (“backspace”)

\n

Nova linha (“new line”)

\t

Tabulação horizontal (“tab”)

\“

Aspas duplas

\‘

Aspas simples

\0

Nulo (0 em decimal)

\\

Barra invertida

\a

Sinal sonoro (“beep)

Exemplos:

printf ("Ola! Eu esto\bu vivo!"); Ola! Eu estu vivo!

printf ("Ola! Eu esto\nu vivo!"); Ola! Eu esto

u vivo!

printf ("Ola! Eu esto\tu vivo!"); Ola! Eu Esto u vivo!

printf ("\"Ola! Eu estou vivo! \""); "Ola! Eu estou vivo!"

printf ("Ola! Eu esto\0u vivo!"); Olá! Eu esto

printf (“\\Ola! Eu estou vivo!\\"); \Olá! Eu estou vivo!\


- scanf

A função scanf (scan format) lê do teclado e "formata" uma lista de números, caracteres, strings, etc.

Sintaxe da função:

scanf (string_de_controle,lista_de_argumentos);

Usando a função scanf() podemos pedir dados ao usuário. Devemos ficar atentos a fim de colocar o mesmo número de argumentos que o de códigos de controle na string de controle. Outra coisa importante é lembrar-se de colocar o & antes das variáveis da lista de argumentos.

Exemplo:

#include <­stdio.h>

int main ()

{

char Ch;

scanf("%c", &Ch);

printf ("Voce pressionou a tecla %c",Ch);

return(0);

}


- gets e getchar(),

Assim como scanf(), leem uma string do teclado.

getchar() lê apenas um caractere.

gets() lê uma string até o final da linha ou até que não haja mais dados para ler, e adiciona o terminador de string "\0".

Sintaxe da função get:

gets(nome_da_string);

Exemplo:

#include <­stdio.h>

int main ()

{

char exemplo[10];

printf ("Digite o seu nome: ");

gets (exemplo);

printf ("O nome é: %s", exemplo);

return(0);

}

O programa pede ao usuário que entre uma string, que será armazenada na string exemplo. A função retorna o próprio exemplo.
Gets
não é uma função segura, pois com essa função pode ocorrer um estouro da quantidade de posições que foi especificada na string. Por exemplo, se no código a cima o usuário digitar como entrada:

Ricardo Pereira Neto

Ou seja, digitar um total de 20 caracteres: 21 posições (incluindo o '\0' ) serão utilizadas para armazenar a string. Como a string exemplo[] só tem 10 caracteres, os 11 caracteres adicionais serão colocados na área de memória subsequente à ocupada por ela, escrevendo uma região de memória que não está reservada à string. Este efeito é conhecido como "estouro de buffer" e pode causar problemas imprevisíveis.

Sintaxe da função getchar:

variavel = getchar();

Esta função retorna o valor inteiro referente ao código ASCII do caractere lido, porém você pode atribuir este valor a uma variável do tipo caractere. Caso ocorra um erro, ela retorna EOF.

Exemplo da utilização de getchar:

#include <­std­io.h>

int main()

{

char caracter;

printf("\n");

printf("Utilizando getchar()\n");

printf("--------------------\n");

printf("\n");

printf("Entre com um caracter :");

caracter = getchar();

printf("\nVocê digitou o caracter %c\n\n",caracter);

return(0);

}

Fonte: Curso de Linguagem C - UFMG (com adaptações)

Link direto para Apostila: http://migre.me/3U6Yp

Nenhum comentário:

Postar um comentário