quinta-feira, 7 de julho de 2016

8.1 - Recebendo dados do usuário pelas funções scanf, getchar, fgetc e getc

Recebendo caracteres em C através da função scanf()

A maneira é idêntica a que fizemos quando usamos a função scanf() para capturar números digitados pelo usuário, que como ensinado no artigo passado de nossa apostila.

Mas com os caracteres, ao invés de usar %d (para números inteiros0 ou %f (para números floats), vamos usar %c, pois é assim que representamos variáveis do tipo char em C.

Portanto, um programa que pede um caractere ao usuário e o imprime na tela é feito da seguinte maneira:

#include <stdio.h>

int main()
{
    char letra;

    printf("Insira um caractere: ");
    scanf("%c",&letra);
    printf("Você digitou: '%c'", letra);
}

Recebendo caracteres em C através da função getchar()

A função scanf() é bem poderosa e flexível. Com ela, podemos pegar uma infinidade de dados do usuário, e inclusive escolher o que vai ser 'capturado', limitar o tanto de coisas que pode ser escrito, e uma série de outras funcionalidades que vocês irão aprender durante nosso curso de C.

Porém, há mais opções que facilitam nossa vida, e uma delas é o getchar().

Existe uma função que faz o mesmo papel da scanf e é voltada para o uso com caracteres, é a getchar(). Ela é mais simples, pois não precisar usar %c ou &, como fazemos na scanf(), e foi feito especialmente para ser usado com caracteres.


Entendendo a palavra 'getchar':

get -> pegar
char -> caractere


ou seja, usamos essa função para 'capturar' ou pegar um caractere.

Para usar, fazemos:
seu_caractere = getchar();

Veja como é seu uso em um código que pede um caractere para o usuário, armazena no char 'letra', e em seguida exibe esse mesmo caractere.

#include <stdio.h>

int main()
{
    char letra;

    printf("Insira um caractere: ");
    letra = getchar();
    printf("Você digitou: '%c'", letra);
}



Recebendo caracteres em C através das funçoes fgetc e getc

Essas funções também servem para armazenar caracteres, porém são mais gerais que a getchar(), pois podem receber dados de outras fontes, além da padrão (o teclado - stdin).

Seus usos são semelhantes ao getchar(), porém temos que dizer ao C por onde o programa deve receber as informações.
No nosso caso, e pelo teclado, então fica: fgetc(stind) e getc(stdin)

Por exemplo, um aplicativo em C que recebe duas letras e mostra na tela seria:

#include <stdio.h>

int main()
{
    char letra1, letra2;

    printf("Insira um caractere: ");
    letra1 = getc(stdin);

    printf("Insira outro caractere: ");
    letra2 = getc(stdin);

    printf("Você digitou: '%c' e '%c'", letra1, letra2);
}


Não se esqueça de aplicar o que aprendeu

Nenhum comentário:

Postar um comentário