mirror of
https://gitlab.com/blau_araujo/cblc.git
synced 2025-05-09 10:16:35 -03:00
2.1 KiB
2.1 KiB
Curso Básico da Linguagem C
Exercícios da aula 11: Leitura da entrada padrão com 'scanf'
1. Desafio: Conversão Milhas->Km e Km->Milhas
Utilizando a função scanf
para receber os valores digitados no formato:
<valor>[m, k ou km]
Crie um programa que converta o valor de uma unidade para outra:
- Se a unidade for
k
oukm
, converter para milhas; - Se a unidade for
m
, converter para quilômetros; - Se não houver unidade, presume-se o valor em quilômetros;
- Espaços entre o valor e a unidade devem ser ignorados;
- As unidades podem ser escritas em maiúsculas ou minúsculas;
- Tudo após a unidade deve ser ignorado;
- Valores devem poder ser passados com representações de ponto flutuante;
- Resultados sempre serão impressos em ponto flutuante e duas casas de precisão.
2. Desafio: Separação de linhas em campos
Considerando o arquivo ender.csv
, abaixo:
Maria das Couves, Rua da Horta, 23, Hortolândia, PR João da Silva, Av. da Prata, 42, Silverado, RS Antônio Pereira, Av. dos Pomares, 65, Pomorânia, SP
Crie um programa que, usando scanf
, liste os dados em cada linha desta forma:
Nome : ... Endereço: ... Cidade : ... Estado : ...
O programa deve ser executado com:
./a.out < ender.csv
3. Desafio: Implementando um 'cat' com 'scanf'
Crie um programa que, ao ser executado em um pipe ou com um redirecionamento
de leitura, imprima todas as linhas de um arquivo. Se executado sem operadores,
o programa deve imprimir todas as linhas digitadas no terminal antes do
atalho Ctrl+D
.
Exemplos:
./a.out < /etc/shells # Imprime todas as linhas de /etc/shells cat /etc/shells | ./a.out # Imprime todas as linhas enviadas pelo cat ./a.out # Espera Ctrl+D para imprimir todas as linhas digitadas