Loading [Contrib]/a11y/accessibility-menu.js
Back
Close

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:
#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.
Go to tech.io
codingame x discord
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