NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
Objetivos
Nos artigos anteriores foram utilizadas as funções “scanf()” e “printf()”, porém não entramos em maiores detalhes. Agora estudaremos essas e outras funções de entrada e saída pelo console. Através deste artigo será possível entender melhor os programas publicados anteriormente.
Pré-requisitos
Para um melhor aprendizado é necessário que o leitor tenha acompanhado o artigo anterior, pois os artigos obedecem a uma seqüência.
Nota: Este artigo faz parte do curso de “Linguagem C – Básico”.
A função printf() já foi apresentada e explicada de forma simplificada no primeiro artigo. Agora teremos a oportunidade de rever esses conceitos e aprofundar mais no assunto.
Essa função tem por finalidade imprimir dados na tela. Isto é feito através da sintaxe:
printf(“expressão de controle”, lista de argumentos);
Na “expressão de controle” são inseridos todos os caracteres a serem exibidos na tela e/ou códigos de formatação, responsáveis por indicar o formato em que os argumentos devem ser impressos. Esses argumentos devem estar incluídos na “lista de argumentos” e caso contenha mais de um devem ser separados por virgula. A lista abaixo mostra os tipos de códigos de formatação permitido na linguagem C.
Código de formatação | Descrição |
%c | Caracteres simples |
%d | Inteiros decimais com sinal |
%I | Inteiros decimais com sinal |
%e | Notação cientifica (e minúsculo) |
%E | Notacão cientifica (E maiúsculo) |
%f | Ponto flutuante decimal |
%g | Usa %e ou %f (qual for mais curto) |
%G | Isa %E ou %F (qual for mais curto) |
%o | Octal sem sinal |
%s | Cadeia de caracteres |
%u | Inteiros decimais sem sinal |
%x | Hexadecimal sem sinal (letras minúsculas) |
%X | Hexadecimal sem sinal (letras maiúsculas) |
%% | Escreve o símbolo de porcentagem (%) |
Tabela 1: Tipos de códigos de formatação
Ao colocar em printf() os comandos %e ou %E estaremos imprimindo em notação cientifica. No caso de usarmos “%g” ou “%G” o compilador decide se escreve em ponto flutuante ou notação cientifica, o qual for mais curto. Veja o exemplo abaixo:
Os códigos especiais (barra invertida) são apresentados abaixo e também pode ser inseridos na “expressão de controle”. Veja a descrição de cada um deles:
Código especial | Descrição |
\n | Nova linha |
\t | Tab |
\b | Retrocesso |
\” | Aspas |
\\ | Barra |
\f | Salta formulário |
\0 | Nulo |
Tabela 2: Tipos de códigos especiais
É possível também especificar o tamanho do campo, o número de casas decimais e justificar à esquerda a saída.
Ao colocar um número entre o símbolo % e o código de formatação estamos especificando a largura mínima do campo. Ou seja, caso o comprimento da saída seja menor ela é completada com espaços. Podemos também completar com zeros para isto coloca-se antes do número especificador de largura um zero. Por exemplo, colocaríamos %08d para que um inteiro decimal com um número de dígitos inferior a oito seja completado com zeros.
Para indicar a precisão logo após o especificador de largura coloca-se um ponto seguido de um número inteiro. Quando se aplica a precisão em ponto flutuante estamos indicando o número de casas decimais que será mostrado. Por exemplo, %12.5f significa que o número ponto flutuante terá tamanho doze com cinco casas decimais. Já no caso do %g ou %G indica a quantidade de dígitos significativos. E em string especifica o numero Maximo de caracteres.
Por padrão a saída é justificada à direita, mas pode ser justificada à esquerda quando acrescentamos logo atrás do “%” um sinal negativo. Por exemplo, %-12.5f.
A função scanf() permite ler os dados de entrada do teclado. O seu uso é muito comum nos programas, como podemos verificar em outros artigos. Veja agora a sua sintaxe que é muito parecida com a do printf().
scanf(“expressão de controle”, argumentos);
A “expressão de controle” é composta pelos códigos de formatação apresentados anteriormente que indica o tipo do dado a ser lido. A quantidade de argumentos deve ser igual a dos códigos de formatação e separadas por virgulas. A lista de argumentos deve ser constituída pelos endereços das variáveis. Para isto usamos o operador de endereço “&” que deve preceder o nome da variável que se deseja atribuir o valor da entrada. É necessário que o tipo de dado do argumento seja compatível com os códigos de formatação. Exemplo:
As funções printf() e scanf() fazem parte da biblioteca padrão de entrada e saída de dados. Portanto deve-se incluir a biblioteca “stdio.h” através da diretiva “include”. Isto é incluir a seguinte linha no começo dos programas: “#include<stdio.h>”.
Embora scanf() e printf() possa ser usadas para ler e escrever caracteres respectivamente, existem outras. Um exemplo disso são as funções getchar() e putchar() também pertencentes na biblioteca padrão c “studio.h”.
Esta função é responsável por lê um caractere do teclado. Veja o exemplo abaixo:
A função original getchar() baseado em UNIX armazena a entrada no buffer até que seja pressionado ENTER. O que pode ser desagradável em ambientes interativos, pois deixa um ou mais caracteres esperando na fila depois que getchar() retorna. O padrão ANSI determina que a função getchar() pode ser implementada de forma interativa, mas na prática isso raramente acontece. Para resolver este problema pode-se utilizar outras funções alternativas como as getch() e getche().
Função putchar()
Escreve na tela um caractere a partir da posição atual do cursor. Veja nosso próximo exemplo.
Qualquer código barra invertida apresentado na tabela 2 podem ser usados com a função putchar(), como mostrado no programa acima.
As funções getch() e getcher() retornam imediatamente após uma tecla ser pressionada. A única diferença é que a getch() não mostra o caractere na tela enquanto que a getche() mostra. Na maioria dos compiladores C, a biblioteca a ser inserida no programa para utilizar essas duas funções é a “conio.h”. Essas funções serão usadas em programas futuros.
Para ler e escrever strings por meio do console podemos também usar as funções gets() e puts() respectivamente. Sendo que os protótipos dessas funções são encontrados em “stdio.h”.
Usando gets() é possível inserir caracteres pelo teclado até que o Enter seja pressionado. No final da string é colocado um terminador nulo e então a função retorna.
A função puts() pode receber os códigos de barra invertida apresentados na tabela 2 neste artigo e é considerada muito mais rápida do que o printf(). O único problema é que puts() trabalha apenas com string de caracteres enquanto que o printf() trabalha com todos os tipos de dados.
Conclui-se que existem vários tipos de entrada e saída de dados pelo console. Sendo que os mais comuns são as funções scanf() e printf(), pois podem ser usadas para qualquer tipo de dados existentes em C, além dos dados serem formatados com facilidade.
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2022 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI