www.samueldiasneto.com: Linguagem C - entrada/saída

<<< Voltar Avançar >>>

9. Entrada/Saída

9.1 Lendo um caracter do teclado

Para ler um caracter do teclado utilize a função getchar( ). Ela faz parte do arquivo de cabeçalho stdio.h. Sua utilização é:

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 caracter. Caso ocorra um erro, ela retorna EOF.

Abaixo segue um exemplo da utilização de getchar:

/* Exemplo da utilização de getchar */

#include <stdio.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);
  }

9.2 Exibindo um caracter

Para exibir um caracter você pode usar a função putchar( ) que está no arquivo de cabeçalho stdio.h. Sua sintaxe é:

putchar(variavel)

Onde variavel é um número inteiro, porém você pode passar variavel como um caracter. putchar retorna o caracter exibido ou EOF, caso ocorra algum erro. Exemplo:

/* Exemplo da utilização de putchar */

#include <stdio.h>

int main()
  {
    char caracter;

    printf("\n");
    printf("Utilizando putchar()\n");
    printf("--------------------\n");
    printf("\n");
    printf("Entre com um caracter :");
    
    caracter = getchar();
      
    printf("\nExibindo o caracter com putchar => ");

    putchar(caracter);

    printf("\n\n"); 

    return(0);
  }

9.3 Lendo uma string do teclado

Você pode ler uma string do teclado usando as funções gets( ) e fgets(). Elas fazem parte do arquivo de cabeçalho stdio.h.

O gcc desencoraja o uso de gets . A própria man page de gets declara o seguinte em sua seção PROBLEMAS :

PROBLEMAS:
Nunca use gets().  Porque é impossível saber, sem conhecer
antecipadamente os dados, quantos caracteres gets() vai ler,
e porque gets() vai continuar a guardar caracteres
ultrapassado o fim do 'buffer',  ela  é extremamente
perigosa  de usar. Este comportamento tem sido utilizado
para quebrar a segurança de computadores. Use fgets() no seu lugar.

Por isso que só abordarei a sintaxe de fgets, que é a seguinte:

fgets(STRING,TAMANHO,STREAM);

onde:

Exemplo do uso de fgets:

/* usando fgets para ler uma string do teclado */

#include <stdio.h>

int main()
  {
    char frase[50];

    printf("Digite uma frase qualquer:");
    fgets(frase,50,stdin);
    printf("\n");
    printf("Exibindo\n\n");

    printf("%s\n",frase);

    return(0);
  }

9.4 Exibindo uma string

Você pode exibir uma string usando a função printf ou a função puts( ). Elas fazem parte do arquivo de cabeçalho stdio.h.

A sintaxe de printf para a exibir uma string é;

printf("%s",STRING);

Exemplo:

#include <stdio.h>

int main()
  {
    char string[30];

    printf("\n");
    printf("Exemplo do uso de printf para exibir strings\n");
    printf("---------------------------------------------\n");
    printf("Digite uma string :");
    fgets(string,30,stdin);
    printf("\n");
    printf("A string digitada foi :%s",string);
    printf("\n\n");
    return(0);
  }

A sintaxe de puts é:

puts(string)

Exemplo:

#include <stdio.h>

int main()
  {
    char string[30];

    printf("\n");
    printf("Exemplo do uso de puts\n");
    printf("----------------------\n");
    printf("\n");
    printf("Digite uma string :");
    fgets(string,30,stdin);
    printf("\n");
    printf("A string digitada foi :",string);
    puts(string);
    printf("\n\n");
    return(0);
  }

9.5 Saída formatada (printf)

A saída formatada é feita utilizando a função printf vista anteriormente. printf faz parte do arquivo de cabeçalho stdio.h


9.6 Entrada formatada (scanf)

A entrada formatada é feita utilizando a função scanf.Ela faz parte do arquivo de cabeçalho stdio.h. Sua sintaxe é:

scanf("especificador de formato",&variável)

O especificador de formato segue a mesma sintaxe da função printf.

Observe que o valor entrado é passado para o endereço da variável. No caso de leitura de uma string não há necessidade do operador &, já que o nome de uma string sem o índice é entendido pela linguagem C como um ponteiro para o início da string.

Abaixo segue um exemplo do uso de scanf:

# include<stdio.h>

int main()
  {
    int qde;
    float preco,total;
    char produto[20];

    printf("\n");
    printf("Produto    :");
    scanf("%s",produto);
    printf("\n");
    printf("Preço      :");
    scanf("%f",&preco);
    printf("\n");
    printf("Quantidade :");
    scanf("%d",&qde);
    printf("\n");
    printf("Produto\tPreço\tQde\iotal\n");
    printf("%s\t%.2f\t%d\t%.2f\n\n",produto,preco,qde,qde*preco);
    return(0);
  }

<<< Voltar Avançar >>>