Ler Entrada do Usuário em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como ler a entrada do usuário na linguagem de programação C usando a função scanf(). A função scanf() é uma ferramenta poderosa para ler a entrada dos usuários e é definida na biblioteca padrão de entrada/saída stdio.h. C é uma linguagem fortemente tipada que suporta vários tipos de dados. Ao longo deste laboratório, focaremos no uso dos tipos de dados char e int para ler e exibir a entrada do usuário.

Configurar o Ambiente de Desenvolvimento

Nesta etapa, configuraremos nosso ambiente de desenvolvimento e criaremos um novo arquivo C para nosso programa.

  1. Abra um terminal no WebIDE. Você deve estar no diretório /home/labex/project por padrão. Se não tiver certeza, você pode digitar pwd (print working directory - imprimir diretório de trabalho) para verificar sua localização atual.

  2. Crie um novo arquivo chamado user_input.c usando o seguinte comando:

    touch user_input.c
    

    O comando touch cria um novo arquivo vazio se ele não existir, ou atualiza o carimbo de data/hora de um arquivo existente.

  3. Abra o arquivo user_input.c no editor do WebIDE. Você pode fazer isso clicando no nome do arquivo no explorador de arquivos no lado esquerdo do WebIDE, ou usando a opção Open File (Abrir Arquivo) no menu File (Arquivo).

Escrever a Estrutura Básica do Programa

Nesta etapa, escreveremos a estrutura básica do nosso programa C.

  1. No arquivo user_input.c, adicione o seguinte código:

    #include <stdio.h>
    
    int main() {
        // We will add our code here
        return 0;
    }
    

    Vamos analisar isso:

    • #include <stdio.h> diz ao compilador para incluir a biblioteca padrão de entrada/saída. Esta biblioteca contém funções como printf() e scanf() que usaremos para entrada e saída.
    • int main() é a função principal onde nosso programa começa a ser executado. Todo programa C deve ter uma função main.
    • As chaves { } definem o corpo da função main.
    • return 0; no final de main indica que o programa foi executado com sucesso.
  2. Salve o arquivo. Você pode fazer isso pressionando Ctrl+S ou selecionando Save (Salvar) no menu File (Arquivo).

Implementar a Entrada do Nome do Usuário

Agora, vamos implementar a funcionalidade para ler o nome do usuário.

  1. Modifique o arquivo user_input.c para incluir o seguinte código dentro da função main():

    #include <stdio.h>
    
    int main() {
        char name[100];
    
        printf("Enter your name: ");
        scanf("%s", name);
    
        printf("Hello, %s!\n", name);
    
        return 0;
    }
    

    Aqui está o que cada nova linha faz:

    • char name[100]; declara um array de caracteres (uma string) que pode conter até 99 caracteres mais o terminador nulo.
    • printf("Enter your name: "); solicita ao usuário que insira seu nome.
    • scanf("%s", name); lê uma string da entrada do usuário e a armazena no array name. O especificador de formato %s é usado para ler strings.
    • printf("Hello, %s!\n", name); imprime uma saudação usando o nome inserido pelo usuário. O %s na string de formato é substituído pelo valor de name.
  2. Salve o arquivo.

Adicionar Entrada de Idade

Vamos estender nosso programa para também solicitar a idade do usuário.

  1. Modifique o arquivo user_input.c para incluir a entrada da idade:

    #include <stdio.h>
    
    int main() {
        char name[100];
        int age;
    
        printf("Enter your name: ");
        scanf("%s", name);
    
        printf("Enter your age: ");
        scanf("%d", &age);
    
        printf("Hello, %s! You are %d years old.\n", name, age);
    
        return 0;
    }
    

    O que há de novo aqui:

    • int age; declara uma variável inteira para armazenar a idade do usuário.
    • Adicionamos outro par printf() e scanf() para solicitar e ler a idade.
    • scanf("%d", &age); lê um inteiro da entrada do usuário. O especificador de formato %d é usado para inteiros. Observe o & antes de age - isso ocorre porque scanf() precisa do endereço de memória da variável para armazenar a entrada.
    • O printf() final agora inclui a idade na mensagem de saída.
  2. Salve o arquivo.

Compilar e Executar o Programa

Nesta etapa final, vamos compilar nosso programa C e executá-lo para ver os resultados.

  1. No terminal, navegue até o diretório que contém o seu arquivo user_input.c:

    cd /home/labex/project
    

    Esta etapa garante que você está no diretório correto. Se você já estiver lá, verá uma mensagem dizendo "cd: no such file or directory", que você pode ignorar.

  2. Compile o programa usando o compilador GCC:

    gcc user_input.c -o user_input
    

    Este comando diz ao GCC para compilar user_input.c e criar um executável chamado user_input. Se houver algum erro no seu código, você verá mensagens de erro aqui. Se isso acontecer, volte ao seu código, corrija os erros e tente compilar novamente.

  3. Execute o programa compilado:

    ./user_input
    

    O ./ diz ao shell para procurar o programa no diretório atual.

Terminal compiling C program

  1. O programa solicitará que você insira seu nome e idade. Digite suas respostas e pressione Enter após cada entrada.

  2. Você deverá ver uma mensagem de saudação personalizada com seu nome e idade.

Se você encontrar algum problema, verifique novamente seu código em busca de erros de digitação e certifique-se de ter salvo todas as alterações antes de compilar.

Resumo

Neste laboratório, você aprendeu como ler a entrada do usuário em C usando a função scanf(). Você criou um programa que solicita aos usuários seu nome e idade, lê a entrada e exibe uma mensagem de saudação personalizada. Este exercício apresentou a você operações básicas de entrada/saída em C, trabalhando com diferentes tipos de dados (arrays char para strings e int para inteiros) e o processo de compilação e execução de um programa C.

Principais conclusões:

  1. A função scanf() é usada para ler a entrada do usuário.
  2. Diferentes especificadores de formato (%s para strings, %d para inteiros) são usados dependendo do tipo de entrada que você está lendo.
  3. Ao ler inteiros ou outros tipos não string com scanf(), você precisa usar o operador & para passar o endereço da variável.
  4. O processo de compilação transforma seu código C em um programa executável.

Essas habilidades fundamentais formam a base para tarefas de programação C mais complexas e serão valiosas à medida que você continuar aprendendo e desenvolvendo suas habilidades de programação. Lembre-se, a prática é fundamental na programação - tente modificar este programa ou criar novos para reforçar o que você aprendeu!