CI067 - Oficina de Computação
Exercícios # 04
1º semestre 2013

Entrada e Saída. Arquivos


PARTE I - Atividades em Laboratório

  
 
  1. (espremer)Escreva um programa que copie sua entrada para sua saída, trocando cada cadeia de dois ou mais espaços por um único espaço.
    DICA: A biblioteca padrão fornece diversas funções para leitura e escrita. Vamos utilizar getchar() e putchar() para ler e escrever um caracter de cada vez.
    getchar() lê o próximo caracter da entrada padrão e o retorna como valor:
                c = getchar();
    putchar() imprime um caracter toda vez que for chamada:
                putchar(c);
    Observação: getchar() retorna a constante simbólica EOF (end-of-file) quando não há mais entrada. Devemos declarar a variável "c"  com um tipo grande o suficiente para conter qualquer caracter e o valor EOF. Portanto, "c"  não pode ser do tipo "char", e sim do tipo "int". (Contribuição do Prof. Egon Hilgenstieler).

 

 
  1. Tome familiaridade com as funções da linguagem C para manipulação de arquivos. Para isto execute comando UNIX man para as seguintes funções: fopen(), fclose(), fgetc(), fputc(), fgets(), fputs(), fprintf(), fscanf(), fread(), fwrite(), feof(). Leia atentamente o texto para ter uma noção clara das funções existentes e como usá-las em um programa.

 
  1. Analise e explique o que cada programa abaixo deve fazer. Depois disto, compile e execute cada um deles. Sua análise está de acordo com o comportamento observado? Troque idéias com os colegas ao seu lado e com o professor.

 
  1. (contatexto)Faça um programa que conte linhas, caracteres e palavras lidas da entrada padrão. Considere que uma palavra pode ser separada por um ou mais espaços, nova linha e/ou tabulação (' $ \backslash$t'). (Contribuição do Prof. Egon Hilgenstieler).

 

 
  1. (salvafrases)Faça um programa que obtenha do usuário 5 frases, cada frase contendo no máximo 100 caracteres, e as grave em um arquivo.

 

 
  1. (lerfrases)Faça um programa que obtenha 5 frases do arquivo criado no exercício anterior, e as mostre na tela.

 

 
  1. (gravaint)Fazer um programa que obtenha do usuário 20 números inteiros e os armazene em um vetor. Em seguida, o programa deve gravar o conteúdo do vetor DIRETAMENTE em um arquivo.

 

 
  1. (prnint)Fazer um programa que leia um arquivo produzido pelo programa do exercício 7 e exiba convenientemente na tela os valores inteiros lidos do arquivo.

 

Parte II - Exercícios

  

 
  1. (grava_agenda)Fazer um programa que implemente uma agenda de endereços. Cada item da agenda possui os seguintes campos: nome (50 caracteres no máximo), endereço postal (250 caracteres no máximo), fone (DDD inclusive), endereço eletrônico (30 caracteres no máximo), cidade (30 caracteres no máximo), CEP e estado (2 caracteres).
    O programa deve apresentar um diálogo em que pede no máximo 50 ítens para a agenda. Caso o usuário deseje terminar a entrada de dados antes de completado os 50 ítens, deve fornecer um nome vazio como entrada.
    Uma vez terminada a entrada de dados, estes devem então ser gravados no arquivo agenda.dat.

 

 
  1. (ler_agenda)Fazer um programa que leia uma agenda produzida pelo programa do exercício 9 e exiba adequadamente na tela os endereços lidos.

 



Armando Luiz Nicolini Delgado
2013-06-05