Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO II AULA 10 – ARQUIVOS CIÊNCIA DA COMPUTAÇÃO ABRINDO E FECHANDO UM ARQUIVO Para manipular arquivos em C é utilizado o conceito de ponteiro de arquivo; Podemos declarar um ponteiro de arquivo da seguinte maneira: p será então um ponteiro para um arquivo. 2 ABRINDO E FECHANDO UM ARQUIVO - FOPEN - Esta é a função de abertura de arquivos. Seu protótipo é: O nome_do_arquivo determina qual arquivo deverá ser aberto. O nome deverá ser válido no sistema operacional utilizado; O modo de abertura diz à função fopen() que tipo de uso você vai fazer do arquivo. 3 4 ABRINDO E FECHANDO UM ARQUIVO - FOPEN - Poderíamos abrir um arquivo binário para escrita, como segue: A condição (!fp) verifica se o arquivo foi aberto com sucesso ERRO == NULL! Uma vez aberto o arquivo, vamos poder ler ou escrever nele utilizando as funções que serão apresentadas nas próximas páginas; 5 ABRINDO E FECHANDO UM ARQUIVO - FOPEN - Toda vez que estamos trabalhando com arquivos, há uma espécie de posição atual do arquivo. Esta é a posição de onde será lido ou escrito o próximo caractere. Normalmente, num acesso sequencial, não temos que mexer nesta posição pois quando lemos um caractere a posição no arquivo é automaticamente atualizada. 6 FCLOSE Quando acabamos de usar um arquivo que abrimos, devemos fechá-lo. Neste caso, utilizamos a função fclose(); O ponteiro fp passado à função fclose() determina o arquivo a ser fechado; A função exit() fecha todos os arquivos que programa tiver aberto; 7 LENDO E ESCREVENDO CARACTERES EM ARQUIVOS PUTC E GETC putc() Escreve caractere no arquivo getc() Retorna um caractere lido do arquivo Ambos movimentam o índice do arquivo em uma posição após a execução 8 LENDO E ESCREVENDO EM ARQUIVOS - FEOF EOF (“End of file”) indica o fim de um arquivo. A função feof verifica se um arquivo chegou ao fim; Retorna não-zero se o arquivo chegou ao EOF, caso contrário retorna zero. Outra forma de se verificar se o final do arquivo foi atingido é comparar o caractere lido por getc com EOF. 9 PROJETO 1 10 PROJETO 1 11 LENDO E ESCREVENDO EM ARQUIVOS - FGETS Para se ler uma string em um arquivo podemos usar fgets(); A função lê a string até que um caractere de nova linha seja lido ou (tamanho-1) caracteres. Se caractere de nova linha (‘\n’) for lido, ele fará parte da string; A string resultante sempre terminará com ‘\0’ (por isto somente tamanho-1 caracteres, no máximo, serão lidos). 12 LENDO E ESCREVENDO EM ARQUIVOS - FPUTS E FERROR Escreve uma string em um arquivo: ferror() É uma função que retorna zero, se nenhum erro ocorreu e um número diferentes de zero se algum erro ocorreu durante o acesso ao arquivo. 13 PROJETO 2 14 PROJETO 2 15 LENDO E ESCREVENDO EM ARQUIVOS FPRINTF Os fluxos padrões em arquivos permitem ao programador ler e escrever em arquivos da maneira padrão com a qual já líamos e escrevíamos na tela; - fprintf – funciona como a função printf(). A diferença é que a saída de fprintf() é um arquivo e não a tela do computador. 16 LENDO E ESCREVENDO EM ARQUIVOS FSCANF A função fscanf() funciona como a função scanf(). A diferença é que fscanf() lê de um arquivo de teclado Strings têm que ser tratadas via fgets(); 17 LENDO E ESCREVENDO EM ARQUIVOS REMOVE E REWIND - rewind() – Retorna a posição corrente do arquivo para o início. - remove() – Apaga um arquivo específicado 18 LENDO E ESCREVENDO EM ARQUIVOS FSEEK Para se fazer procuras e acessos randômicos em arquivos usa-se a função fseek(). Esta move a posição corrente de leitura ou escrita no arquivo. Escopo: O parâmetro origem determina a partir de onde os numbytes de movimentação serão contados. Os valores possíveis são: 19 PROJETO 3 ACRESCENTAR AO CÓDIGO – EXERCÍCIO 3 – AULA 9 20
Compartilhar