segunda-feira, 4 de julho de 2016

8.0 - Falando sobre a função 'scanf' em C !

Até o momento temos mostrado diversos programas, porém sem controle e sem interação.
O programa simplesmente roda e mostra coisas na tela. No entanto, na vida real não é assim. Praticamente todos possuem algum tipo de interação com o usuário: recebem dados, cliques, arrastamos e soltamos etc. Desta vez, iremos apresentar a usar a função scanf e obter dados do usuário. Vamos começar a 'conversar' com o computador.

Recebendo números inteiros com a função scanf

Assim como fizemos para trabalhar com inteiros na função printf, vamos usar novamente o símbolo %d para representar os int.

Suponho que queiramos pedir um inteiro ao usuário, primeiro temos que declarar um inteiro. Vamos supor um de nome 'numero'.
Para o usuário armazenar um número nessa variável 'numero', usamos a seguinte sintaxe:

scanf("%d", &numero);

Essa função nos diz "armazene na variável 'numero' um inteiro".
O erro mais comum é esquecer o &, cuidado!

Por exemplo, vamos escrever um programa em C que pede um número ao usuário e o mostra na tela:

#include <stdio.h>

int main()
{
    int numero;
    printf("Digite um numero: ");
    scanf("%d", &numero);

    printf("O numero digitado foi: %d", numero);
}


Exemplo de código- Como usar a função scanf()

Escreva um programa em C que peça dois números inteiros e mostre sua soma.
Primeiro criamos três variáveis inteiras: num1, num2 e resultado.
Essas variáveis que vão armazenar os números que o usuário fornecer e o resultado da soma.

Após isso, usamos a função scanf() para pegar do usuário os dois número.
Em seguida, armazenamos a soma desses números na variável 'resultado', e exibimos essa variável num printf.

Veja como ficou o nosso código em C:


#include <stdio.h>

int main()
{
    int num1, num2, resultado;
    printf("Digite um numero: ");
    scanf("%d", &num1);

    printf("Digite outro numero: ");
    scanf("%d", &num2);

    resultado = num1 + num2;

    printf("%d + %d = %d", num1,num2,resultado);
}

Recebendo mais de um número dentro de uma única scanf

Para evitar o trabalho de ter que escrever a scanf cada vez que você deseje receber um número do usuário, você pode colocar mais de um %d dentro do escopo da scanf.

#include <stdio.h>

int main()
{
    int num1, num2;

    printf("Insira dois numeros: ");
    scanf("%d %d", &num1, &num2);

    printf("Você digitou: '%d' e '%d'", num1, num2);
}

No caso acima, num1 vai ser o número que você digitou antes de dar enter, espaço ou tab.
E num2 sera o número que você digitou após dar enter, espaço ou tab

Exercício: Faça um programa que peça dois inteiros ao usuário e que mostre a diferença (subtração) entre o primeiro e segundo número.


Recebendo números reais ou decimais com a função scanf

Para receber números do tipo float ou double, fazemos exatamente como na seção anterior, sobre inteiros, somente com uma diferença que talvez você já saiba qual é: usamos %f ao invés de %d.
Faz todo sentido, não?

Exemplo: Crie um programa em C que peça dois números decimais ao usuário e mostre o produto deles, com precisão de dois números.

Lembrando que o símbolo de multiplicação é o asterisco, *:

#include <stdio.h>

int main()
{
    float num1, num2, resultado;
    printf("Digite um numero: ");
    scanf("%f", &num1);

    printf("Digite outro numero: ");
    scanf("%f", &num2);

    resultado = num1 * num2;

    printf("%.1f + %.1f = %.2f", num1,num2,resultado);
}

See ya :]

Nenhum comentário:

Postar um comentário