| <<< Voltar | Avançar >>> |
9. Entrada/Saída
9.1 Lendo um caracter do teclado
Para ler um caracter do teclado utilize a função getchar( ). Ela faz parte do arquivo de cabeçalho stdio.h. Sua utilização é:
variavel = getchar(); |
Esta função retorna o valor inteiro referente ao código ASCII do caractere lido, porém você pode atribuir este valor a uma variável do tipo caracter. Caso ocorra um erro, ela retorna EOF.
Abaixo segue um exemplo da utilização de getchar:
/* Exemplo da utilização de getchar */
#include <stdio.h>
int main()
{
char caracter;
printf("\n");
printf("Utilizando getchar()\n");
printf("--------------------\n");
printf("\n");
printf("Entre com um caracter :");
caracter = getchar();
printf("\nVocê digitou o caracter %c\n\n",caracter);
return(0);
}
|
9.2 Exibindo um caracter
Para exibir um caracter você pode usar a função putchar( ) que está no arquivo de cabeçalho stdio.h. Sua sintaxe é:
putchar(variavel) |
Onde variavel é um número inteiro, porém você pode passar variavel como um caracter. putchar retorna o caracter exibido ou EOF, caso ocorra algum erro. Exemplo:
/* Exemplo da utilização de putchar */
#include <stdio.h>
int main()
{
char caracter;
printf("\n");
printf("Utilizando putchar()\n");
printf("--------------------\n");
printf("\n");
printf("Entre com um caracter :");
caracter = getchar();
printf("\nExibindo o caracter com putchar => ");
putchar(caracter);
printf("\n\n");
return(0);
}
|
9.3 Lendo uma string do teclado
Você pode ler uma string do teclado usando as funções gets( ) e fgets(). Elas fazem parte do arquivo de cabeçalho stdio.h.
O gcc desencoraja o uso de gets . A própria man page de gets declara o seguinte em sua seção PROBLEMAS :
PROBLEMAS: Nunca use gets(). Porque é impossível saber, sem conhecer antecipadamente os dados, quantos caracteres gets() vai ler, e porque gets() vai continuar a guardar caracteres ultrapassado o fim do 'buffer', ela é extremamente perigosa de usar. Este comportamento tem sido utilizado para quebrar a segurança de computadores. Use fgets() no seu lugar. |
Por isso que só abordarei a sintaxe de fgets, que é a seguinte:
fgets(STRING,TAMANHO,STREAM); |
onde:
- STRING é a variável onde a string será armazenada
- TAMANHO é o tamanho máximo da string
- STREAM é de onde os caracteres serão lidos, para ler do teclado o valor padrão para isto é stdin
Exemplo do uso de fgets:
/* usando fgets para ler uma string do teclado */
#include <stdio.h>
int main()
{
char frase[50];
printf("Digite uma frase qualquer:");
fgets(frase,50,stdin);
printf("\n");
printf("Exibindo\n\n");
printf("%s\n",frase);
return(0);
}
|
9.4 Exibindo uma string
Você pode exibir uma string usando a função printf ou a função puts( ). Elas fazem parte do arquivo de cabeçalho stdio.h.
A sintaxe de printf para a exibir uma string é;
printf("%s",STRING);
|
Exemplo:
#include <stdio.h>
int main()
{
char string[30];
printf("\n");
printf("Exemplo do uso de printf para exibir strings\n");
printf("---------------------------------------------\n");
printf("Digite uma string :");
fgets(string,30,stdin);
printf("\n");
printf("A string digitada foi :%s",string);
printf("\n\n");
return(0);
}
|
A sintaxe de puts é:
puts(string) |
Exemplo:
#include <stdio.h>
int main()
{
char string[30];
printf("\n");
printf("Exemplo do uso de puts\n");
printf("----------------------\n");
printf("\n");
printf("Digite uma string :");
fgets(string,30,stdin);
printf("\n");
printf("A string digitada foi :",string);
puts(string);
printf("\n\n");
return(0);
}
|
9.5 Saída formatada (printf)
A saída formatada é feita utilizando a função printf vista anteriormente. printf faz parte do arquivo de cabeçalho stdio.h
9.6 Entrada formatada (scanf)
A entrada formatada é feita utilizando a função scanf.Ela faz parte do arquivo de cabeçalho stdio.h. Sua sintaxe é:
scanf("especificador de formato",&variável)
|
O especificador de formato segue a mesma sintaxe da função printf.
Observe que o valor entrado é passado para o endereço da variável. No caso de leitura de uma string não há necessidade do operador &, já que o nome de uma string sem o índice é entendido pela linguagem C como um ponteiro para o início da string.
Abaixo segue um exemplo do uso de scanf:
# include<stdio.h>
int main()
{
int qde;
float preco,total;
char produto[20];
printf("\n");
printf("Produto :");
scanf("%s",produto);
printf("\n");
printf("Preço :");
scanf("%f",&preco);
printf("\n");
printf("Quantidade :");
scanf("%d",&qde);
printf("\n");
printf("Produto\tPreço\tQde\iotal\n");
printf("%s\t%.2f\t%d\t%.2f\n\n",produto,preco,qde,qde*preco);
return(0);
}
|
| <<< Voltar | Avançar >>> |