Pertencente a biblioteca stdio.h (Standard Input/Output- entradas e saídas padrões), comando scanf é usado para entrada de dados à partir do teclado.
Sintaxe:
scanf("expressão de controle",argumentos);
onde expressão de controle indica o tipo do dado que será lido pelo computador. A tabela 1 abaixo mostra as expressões de controle usadas no scanf e o tipo de dado que cada expressão representa.
|
Tabela 1. Expressão de controle e os dados que a expressão representa. |
nos argumentos o programador deve indicar o identificador da variável que receberá o valor digitado pelo usuário. Na figura 1, temos um exemplo de entrada de dados para dois tipos de dados de dados diferentes.
|
Figura 1. Declaração de variáveis e seus respectivos comandos de entrada de dados. |
Note que no argumento é usado o símbolo & antes do identificador da variável (
Não lembra o que é o identificador da variável? clique aqui e relembre). O uso desse símbolo é obrigatório e serve para avisar o compilador o endereço de memória onde a informação lida no teclado será guardada. Na figura 2 temos uma seta que indica o simbolo referido no texto.
|
Figura 2. Simbolo usado no argumento do scanf indicando o endereço de memorial que receberá o valor digitado. |
Normalmente quando temos uma entrada de dados, um comando de saída de dados (printf) é associado ao scanf e servirá para instruir o usuário sobre o que ele deve fazer. Para entender melhor essa história de associar um printf com o scanf, observe o código apresentado na figura 3.
|
Figura 3. Exemplo de programa usando 2 entrada de dados do tipo inteiro. |
Conhecendo o código fonte do exemplo apresentado na figura 3 é fácil saber que o programa que irá receber 2 números inteiros, somar esses dois números e exibir o resultado da soma para o usuário que digitou os números. No entanto, quando não temos acesso ao código fonte não é tão fácil deduzir o que o programa vai fazer. Na figura 4 temos a tela do programa exibido na figura 3 após a compilação e execução do código.
|
Figura 4. Execução do programa apresentado na figura 3. |
Notem que ao executar o programa é difícil saber o que deve ser feito, pois o usuário irá se deparar com uma tela preta com um cursor piscando. Neste caso o que deve ser feito? Devemos digitar uma palavra, um numero, esse numero deve ser inteiro, real? É impossível saber ao certo o que devemos fazer. Para ajudar o usuário, o programador deve criar mecanismos para instruir o usuário sobre o que deve ser feito em cada parte do programa. Na figura 5 temos o código da figura 3 reescrito.
|
Figura 5. Código associando printf com a entrada de dados. |
No código apresentado na figura 5 acrescentamos 3 printf's. O primeiro printf apresenta uma mensagem explicando o que o programa irá fazer, no segundo e terceiro printf o programador irá instruir o usuário sobre como ele deve interagir com o programa. Na figura 6 temos uma tela da execução do programa após as modificações.
|
Figura 6. Execução do programa associando printf e scanf orientando o usuário. |
Na figura 6 vemos o resultado com as alterações realizadas no código conforme apresentado na figura 5. Na tela de maior destaque temos a primeira parte do programa onde uma mensagem explicando a função do programa será exibida assim como a primeira instrução para o usuário indicando que ele deve digitar o primeiro numero. No quadrado vermelho em destaque, temos o programa após a exibição da soma entre os números.
Notem que nessa nova versão é muito mais simples para o usuário entender o que deve ser feito ao longo da execução do programa.
Variação do comando:
Conforme o código apresentado na figura 7, um único comando scanf pode ser usado para receber mais de uma variável, no entanto, a pratica não é aconselhada, pois o usuário terá que digitar os dois números na sequencia o que pode gerar duvidas no momento da execução. Na figura 8 temos a execução do programa exibido na figura 7.
|
Figura 7. Comando scanf recebendo duas variáveis. |
|
Figura 8. Execução do código exibido na figura 7. |
Ainda ta com duvida, curta nossa pagina no facebook e poste sua duvida lá....
Nenhum comentário:
Postar um comentário