14.03.2015 Views

Apostila C da UFMG - Universidade do Minho

Apostila C da UFMG - Universidade do Minho

Apostila C da UFMG - Universidade do Minho

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

9 - Entra<strong>da</strong>s e saí<strong>da</strong>s padroniza<strong>da</strong>s<br />

9.1 - Introdução<br />

As entra<strong>da</strong>s e saí<strong>da</strong>s padroniza<strong>da</strong>s <strong>do</strong> C fornecem ao programa<strong>do</strong>r uma interface consistente. Esta interface se presta a<br />

entra<strong>da</strong>s e saí<strong>da</strong>s na tela texto e a entra<strong>da</strong>s e saí<strong>da</strong>s em arquivos. Já vimos algumas <strong>da</strong>s funções apresenta<strong>da</strong>s aqui.<br />

Não vamos entrar em detalhes nestas seções pois estas funções podem ser encontra<strong>da</strong>s no manual <strong>do</strong> seu compila<strong>do</strong>r.<br />

Não é objetivo deste curso explicar, em detalhes, funções. A sintaxe completa <strong>da</strong>s funções <strong>do</strong> C podem ser<br />

encontra<strong>da</strong>s no manual <strong>do</strong> seu compila<strong>do</strong>r. Alguns compila<strong>do</strong>res trazem um descrição <strong>da</strong>s funções na aju<strong>da</strong> <strong>do</strong><br />

compila<strong>do</strong>r que pode ser acessa<strong>da</strong> "on line".<br />

Um ponto importante é que agora, quan<strong>do</strong> apresentarmos uma função, vamos, em primeiro lugar, apresentar o seu<br />

protótipo. O leitor já deve ser capaz de interpretar as informações que um protótipo nos passa.<br />

9.2 - Len<strong>do</strong> e Escreven<strong>do</strong> Caracteres<br />

Uma <strong>da</strong>s funções mais básicas que um programa<strong>do</strong>r quer é a entra<strong>da</strong> e saí<strong>da</strong> em dispositivos. Estes podem ser um<br />

monitor, uma impressora ou um arquivo em disco. Vamos ver os principais coman<strong>do</strong>s que a padronização <strong>do</strong> C nos<br />

fornece para isto.<br />

9.2.1 - getche e getch<br />

As funções getch() e getche() não são defini<strong>da</strong>s pelo padrão ANSI. Porém, elas geralmente são incluí<strong>da</strong>s em<br />

compila<strong>do</strong>res basea<strong>do</strong>s no DOS, e se encontram no header file conio.h. Vale a pena repetir: são funções comuns<br />

apenas para compila<strong>do</strong>res basea<strong>do</strong>s em DOS e, se você estiver no UNIX normalmente não terá estas funções<br />

disponíveis.<br />

Protótipos:<br />

int getch (void);<br />

int getche (void);<br />

getch() espera que o usuário digite uma tecla e retorna este caractere. Você pode estar estranhan<strong>do</strong> o fato de getch()<br />

retornar um inteiro, mas não há problema pois este inteiro é tal que quan<strong>do</strong> iguala<strong>do</strong> a um char a conversão é feita<br />

corretamente. A função getche() funciona exatamente como getch(). A diferença é que getche() gera um "echo" na<br />

tela antes de retornar a tecla.<br />

Se a tecla pressiona<strong>da</strong> for um caractere especial estas funções retornam zero. Neste caso você deve usar as funções<br />

novamente para pegar o código <strong>da</strong> tecla extendi<strong>da</strong> pressiona<strong>da</strong>.<br />

9.2.2 - putchar<br />

Protótipo:<br />

int putchar (int c);<br />

putchar() coloca o caractere c na tela. Este caractere é coloca<strong>do</strong> na posição atual <strong>do</strong> cursor. Mais uma vez os tipos<br />

são inteiros, mas você não precisa se preocupar com este fato. O header file é stdio.h.<br />

9.3 - Len<strong>do</strong> e Escreven<strong>do</strong> Strings<br />

9.3.1 - gets<br />

Protótipo:<br />

char *gets (char *s);<br />

Pede ao usuário que entre uma string, que será armazena<strong>da</strong> na string s. O ponteiro que a função retorna é o próprio s.<br />

9.3.2 - puts<br />

Protótipo:<br />

int puts (char *s);<br />

puts() coloca a string s na tela.<br />

Pág. 61

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!