Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Dominando Entrada e Saída em Programação C

Quando dizemos Entrada, significa alimentar alguns dados em um programa. Uma entrada pode ser dada na forma de um arquivo ou da linha de comando. A programação C fornece um conjunto de funções embutidas para ler a entrada fornecida e alimentá-la ao programa conforme a necessidade.

Quando dizemos Saída, significa exibir alguns dados na tela, impressora ou em qualquer arquivo. A programação C fornece um conjunto de funções embutidas para exibir os dados na tela do computador, bem como salvá-los em arquivos de texto ou binários.

Os Arquivos Padrão

A programação C trata todos os dispositivos como arquivos. Portanto, dispositivos como o display são endereçados da mesma forma que arquivos e os seguintes três arquivos são abertos automaticamente quando um programa é executado para fornecer acesso ao teclado e à tela.

Arquivo PadrãoPonteiro de ArquivoDispositivo
Entrada padrãostdinTeclado
Saída padrãostdoutTela
Erro padrãostderrSua tela

Os ponteiros de arquivo são o meio de acessar o arquivo para fins de leitura e escrita. Esta seção explica como ler valores da tela e como imprimir o resultado na tela.

As Funções getchar() e putchar()

A função int getchar(void) lê o próximo caractere disponível da tela e o retorna como um inteiro. Esta função lê apenas um único caractere por vez. Você pode usar este método em um loop caso queira ler mais de um caractere da tela.

A função int putchar(int c) coloca o caractere passado na tela e retorna o mesmo caractere. Esta função coloca apenas um único caractere por vez. Você pode usar este método em um loop caso queira exibir mais de um caractere na tela. Verifique o seguinte exemplo:

#include <stdio.h>
int main() {
    int c;
    printf("Digite um valor: ");
    c = getchar();
    printf("\nVocê digitou: ");
    putchar(c);
    return 0;
}

Quando o código acima é compilado e executado, ele espera que você insira algum texto. Quando você digita um texto e pressiona enter, o programa prossegue e lê apenas um único caractere e o exibe da seguinte forma:

$./a.out Digite um valor: isto é teste Você digitou: i

As Funções gets() e puts()

A função char *gets(char *s) lê uma linha do stdin para o buffer apontado por s até um newline final ou EOF (End of File).

A função int puts(const char *s) escreve a string 's' e um newline final no stdout.

NOTA: Embora o uso da função gets() tenha sido descontinuado, em vez de usar gets, você deve usar fgets().

#include <stdio.h>
int main() {
    char str[100];
    printf("Digite um valor: ");
    gets(str);
    printf("\nVocê digitou: ");
    puts(str);
    return 0;
}

Quando o código acima é compilado e executado, ele espera que você insira algum texto. Quando você digita um texto e pressiona enter, o programa prossegue e lê a linha completa até o fim, e a exibe da seguinte forma:

$./a.out Digite um valor: isto é teste Você digitou: isto é teste

As Funções scanf() e printf()

A função int scanf(const char *format, ...) lê a entrada do fluxo de entrada padrão stdin e analisa essa entrada de acordo com o formato fornecido.

A função int printf(const char *format, ...) escreve a saída no fluxo de saída padrão stdout e produz a saída de acordo com o formato fornecido.

O formato pode ser uma string constante simples, mas você pode especificar %s, %d, %c, %f, etc., para imprimir ou ler strings, inteiro, caractere ou float respectivamente. Existem muitas outras opções de formatação disponíveis que podem ser usadas com base nos requisitos. Vamos prosseguir com um exemplo simples para entender melhor os conceitos:

#include <stdio.h>
int main() {
    char str[100];
    int i;
    printf("Digite um valor: ");
    scanf("%s %d", str, &i);
    printf("\nVocê digitou: %s %d ", str, i);
    return 0;
}

Quando o código acima é compilado e executado, ele espera que você insira algum texto. Quando você digita um texto e pressiona enter, o programa prossegue, lê a entrada e a exibe da seguinte forma:

$./a.out Digite um valor: sete 7 Você digitou: sete 7

Aqui, deve-se notar que scanf() espera entrada no mesmo formato que você forneceu %s e %d, o que significa que você deve fornecer entradas válidas como "string inteiro". Se você fornecer "string string" ou "inteiro inteiro", será assumido como entrada incorreta. Em segundo lugar, ao ler uma string, scanf() para de ler assim que encontra um espaço, então "isto é teste" são três strings para scanf().


Linguagem C

  1. Entendendo Palavras-chave e Identificadores em C#: Regras, Listas e Boas Práticas
  2. Fundamentos de C#: Essenciais de Entrada e Saída
  3. Classes e Objetos em C#: Fundamentos para POO Robusta
  4. Dominando Entrada e Saída em C++: Guia Prático
  5. Dominando Entrada e Saída (I/O) em C: scanf() e printf() Explicados
  6. Dominando I/O e Importação de Módulos em Python: Guia Prático
  7. Dominando Entrada e Saída em Java: Imprimir, Ler e Formatados Seus Dados
  8. Dominando Streams em C++: cout, cin, cerr, clog – Guia Prático
  9. Entendendo Constantes e Literais em C: Tipos, Uso e Boas Práticas
  10. Dominando Constantes e Literais em C#: Tipos, Regras e Boas Práticas