Laboratório de Técnicas de
Programação
Slide 02 – Arquivos (continuação)
Juliano Amorim de Oliveira
[email protected]
Instituto Metodista Isabela Hendrix
Curso de Análise e Desenvolvimento de Sistemas
Na aula anterior


Arquivos como meio persistente de dados
Dois tipos de arquivos



Arquivo texto
Arquivo binário
E/S com Arquivos em C <stdio.h>



Conceito de stream: arquivos e dispositivos
O ponteiro de arquivos (FILE *fp)
Modos de abertura de arquivos
Na aula anterior

Abrindo e Fechando um arquivo


Modos de abertura (r, w, a, rb, wb, ab, ...)
Manipulação de arquivos texto




Lendo
Escrevendo
Descarregando o buffer
Verificando o fim do arquivo
Resumo das funções de ES em C –
estudadas até agora

FILE * fopen (const char *fp, const char *mode)


int fclose(FILE *fp)


Escreve em um arquivo os dados especificados no formato
int fflush(FILE *fp);


Lê de um arquivo os dados especificados no formato
int fscanf(FILE *fp, const char *fmt, ...)


Fecha um arquivo
int fprintf(FILE *fp, const char *fmt, ...)


Abre um arquivo
Descarrega o buffer
int feof(FILE *fp)

Retorna verdadeiro se o fim do arquivo foi atingido
Resumo das funções de ES em C –
outras funções

int fgetc (FILE *fp);


int fputc(int ch, FILE *fp)


Grava uma cadeia de caracteres no arquivo
int fputs(char *str, FILE *fp);


Grava um único caractere no arquivo
char * fgets(char *str, int length, FILE *fp);


Lê um único caractere do arquivo
Lê uma cadeia de caracteres do arquivo
void rewind(FILE *fp)

Reposiciona o cursor de posição do arquivo para o início do
mesmo. “Rebobina" o arquivo.
Lendo e Escrevendo Caracteres


As operações mais simples em arquivos
texto são a leitura e escrita de caracteres
Para ler e escrever caracteres existem as
funções fgetc e fputc, respectivamente.
Lendo um caracterer

int fgetc (FILE *fp);



Lê um caractere e retorna na função
A função lê um caractere como um unsigned
char mas retorna o valor como um inteiro,
onde o byte mais significativo vale zero.
A função devolve o código EOF ao chegar ao
final do arquivo.

EOF possui o valor -1

Válido somente para arquivos textos. Em arquivos texto
não há caractere com código ASCII negativo.
Escrevendo um caractere

int fputc(int ch, FILE *fp)



Escreve um caractere no arquivo
A função recebe o caractere ch como um valor
inteiro mas trata-o como um unsigned char. O
byte mais significativo do inteiro é descartado.
Se o caractere for escrito com sucesso o
caractere informado no parâmetro ch será
retornado na função.
Exercício 01 –
Escrever um programa em Linguagem C que:
1.
Lista as opções do usuário e receber a opção informada. Algo como:
1- Escrever uma linha
2- Ler uma linha
3- Sair do Programa
Entre sua opção:
O sistema só termina sua execução quando a opção 3 for informada. Ao
terminar a execução das demais opções a tela de menu é reimpressa e uma
nova opção é solicitada ao usuário.
2.
Escrever uma string no arquivo, sempre ao final do mesmo. Primeiro será
solicitada a string em seguida ela será escrita no final do arquivo.
3.
Ler uma linha especificada pelo usuário. O usuário irá informar o número da
linha a ser lida no mesmo arquivo onde estão sendo gravadas as strings. As
linhas válidas vão de 0 até o número de linhas do arquivo. Se o usuário
informar uma linha maior do que o número de linhas do arquivo, uma
mensagem informando tal ocorrência deve ser impressa na tela.
Lendo e escrevendo cadeias de
caracteres


fgets e fputs efetuam as operações de
leitura e escrita de strings (cadeias de
caracteres)
Operam de forma semelhante a fgetc e
fputc, mas ao invês de ler e escrever um
único caractere operam com strings.
Lendo uma cadeia de caracteres

char * fgets(char *str, int length, FILE *fp)


Lê uma string do arquivo especificado até que
um caractere de nova linha seja encontrado
ou o número de caracteres lido seja igual a
length – 1.
Retorna o ponteiro para a variável string lida
Escrevendo uma cadeia de
caracteres

int fputs(char *str, FILE *fp);


Escreve a cadeia de caracteres no arquivo
especificado
EOF é retornado se houver algum erro e o
valor 0 se a string for gravada com sucesso.
Exercício 02

Reescrever o exercício 01 utilizando as
funções fgets e fputs.
Download

FILE *fp