Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Técnicas de Programação Prática – Arquivos de Texto Arquivo de Texto � Um arquivo de texto é caso particular de arquivo binário, no qual cada byte assume apenas valores relacionados a caracteres legíveis, como números, letras e símbolos de pontuação e matemáticos. � De outro modo, ao abrirmos um arquivo texto visualizamos seu conteúdo como uma informação que pode ser humanamente compreendida. Arquivos � O processo de trabalhar com arquivos em C consiste em três etapas: 1. Abrir o arquivo; 2. Ler e/ou gravar as informações desejadas no arquivo; 3. Fechar o arquivo. Funções de entrada e saída As funções mais usadas da biblioteca <stdio.h>: • fopen() – Abre um arquivo • fclose() – fecha um arquivo • fputc() – Escreve um caractere em um arquivo • fgetc() – Lê um caractere de um arquivo • fputs() – Escreve uma string em um arquivo • fgets() – lê uma linha de um arquivo • fprintf() – Equivalente a printf() • fscanf() – Equivalente a scanf() • feof() – Retorna verdadeiro se chegou ao fim do arquivo • rewind() – Posiciona o arquivo no início • remove() – Apaga um arquivo • fflush() – descarrega um arquivo Abertura de arquivo – fopen( ) � Antes de qualquer operação ser executada com o arquivo, ele deve ser aberto. Esta operação retorno um ponteiro para o tipo FILE � Um arquivo pode ser aberto para permitir diversas operações: leitura, escrita, leitura e escrita, anexação de texto etc. A função utilizada para abrir o arquivo é fopen() A função fopen() FILE * fopen(const char * NomeArq, const char * Modo); � NomeArq – Nome do arquivo � Modo – Modo (finalidade) de abertura: Os modos de uso mais comuns são: � r (read) : abre um arquivo texto para leitura � w (write) : cria um arquivo texto para escrita � a (append) : anexa (no final) a um arquivo de texto � r+ : abre um arquivo texto para leitura/escrita � w+ : cria um arquivo texto para leitura/escrita Problema 1: � O arquivo “SelecaoBrasileira.txt” (moodle) contém a lista dos onze jogadores inicialmente escalados para a final das copas das confederações: � Implemente um programa que leia o arquivo e imprima o seu conteúdo na tela. � funções utilizadas: abertura (fopen) e fechamento (fclose) de arquivos, leitura de strings de um arquivo (fgets). Julio Cesar Daniel Alves Thiago Silva David Luiz Marcelo Luiz Gustavo Paulinho Oscar Hulk Neymar Fred NOTA: se você estiver estudando este código e não tiver o arquivo “SelecaoBrasileira.txt”, abra o bloco de notas, digite ou copie e cole os nomes da lista ao lado. depois salve o arquivo, na pasta do seu programa Solução 1: Comentários � Observe que fgets inclui o caractere ‘\n’ (nova linha) no final da string � Neste caso o ‘\n’ foi conveniente, pois não foi necessário incluir ‘\n’ dentro do printf � Em muitos casos este ‘\n’ lido pode ser inconveniente, porém é fácil eliminá-lo: basta subistituí-lo por ‘\0’ : s[strlen(s)-1] = '\0'; Problema 2 � Tentar ler os nomes do mesmo arquivo, utilizando a função fscanf � Sugestão: salve o código anterior com outro nome e substitua fgets(jogador, 20, arq); por fscanf(arq, "%s", jogador); � Nota: O 1º parâmetro (ponteiro para o arquivo aberto) é única coisa de fscanf que difere da sintaxe do bom e velho scanf. Solução 2: Problema 3 � Implemente um programa em C que leia via teclado vários números inteiros até que um valor nulo seja digitado. O programa deve salvar os números pares no arquivo “pares.txt” e os ímpares no arquivo “impares.txt”. Solução 3 Problema 4 � Implemente um programa para ler um arquivo de texto em que cada linha tem duas informações: � Data de nascimento no formato inglês mm/dd/yyyy � Nome próprio de pessoa � Para cada linha do arquivo de entrada, o programa deve imprimir na tela: � O nome da pessoa � A data de aniversário (dd/mm)
Compartilhar