Operações com ficheiros em linguagem C
joaomc
1,300 views
Gravar e ler caracteres em Ficheiros C
- Após a abertura do ficehiro é possível Ler e/ou gravar dados nele.
- A função fputc() possibilita a gravação de dados caracter a caracter.
int fputc(int ch, FILE *arq);
- A função fgetc() possibilita a leitura de dados do ficheiro caracter a caracter.
int fgetc(FILE *arq);
- Quando não houver mais dados a serem lidos no ficheiro, a fgetc devolve a constante EOF (end of file), que está definida na biblioteca stdio.h, indica o fim de um ficheiro. Isso indica que chegamos ao fim do ficheiro e não se pode realizar a leitura dos dados. Em geral, o valor de EOF é igual −1.
- Após a abertura do ficheiro é necessário realizar o teste de fim de ficheiro (o ficheiro pode estar vazio):
if((fp = fopen("ficheiro.txt","r")) == NULL){
printf( "Erro na abertura do ficheiro");
exit(1);
}
- O Exemplo a seguir exibe a gravação e leitura de dados caracter a caracter.
- No comando fopen será criado o ficheiro arqtexto.txt na pasta corrente
- A string tentrada será gravada no ficheiro caracter a caracter.
- O arquivo será fechado e posteriormente aberto para leitura.
- Utilizamos a função fgetc() para ler esses dados do ficheiro caracter a caracter:
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE *farq;
int i;
char tentrada[50] = {"Teste de gravacao e leitura de dados-arquivo texto"};
char tsaida[50], car;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
- A constante EOF pode ser substituida pela função feof() que realiza o teste de fim de ficheiro.
int feof(FILE *arq) - O teste do while do exemplo acima poderia ficar assim: while ( !feof (farq) )
Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD Online Participants