Na aula a seguir aprendi a criar um ficheiro em c.
#include <stdio.h>
main(){
FILE *fp;
if((fp=fopen ("a.txt","r"))==NULL)
{
printf("Erro na abertura do ficheiro");
exit(1);
}
fclose(fp);
}
FILE *fp é a definição de uma variável do tipo FILE (ficheiro), tendo um valor apontador para o ficheiro;
if((fp=fopen ("a.txt","r"))==NULL) é para guardar o ficheiro que ira criar;
fopen é uma função de abertura do ficheiro e fopen é uma função para fechar o ficheiro.
Aprendi também outras funções para manipular ficheiros:
Ler e escrever num ficheiro:
Ficheiro Texto:
- fgetc - leitura de carácter a carácter do ficheiro
int fgetc(Ficheiro);
- fgets - leitura de uma string num ficheiro
char *fgets(char *x, int y, FILE *fp)
Onde:
char *s é a string onde vai ser guardada a linha do ficheiro
int y marca o limite que vai ser possível guardar na string
FILE *fp é onde a função vai buscar os valores
- fscanf - leitura formatada
int fscanf(FILE *fp, const char *format ...)
- fputs - escrever num ficheiro
int fputs(int ch, FILE *fp)
- fprintf - escrever em ficheiro formatado
int fprintf(FILE *fp, const char *format)
Ficheiro Binário
- fwrite - escrever para o disco, a função retoma os valores que conseguir em caso de erro
int fwrite(const void *ptr, int size, int n, FILE *fp)
Onde:
const void *ptr : Este apontador tem que apontar para o endereço de memoria que queremos guardar, e é void pois é um apontador que pode apontador para qualquer tipo
int size : Indica o tamanho
int n : Indica o numero elementos que queremos escrever
FILE *fp : o ficheiro onde vamos guardar a informação
- fread - leitura de dados para o ficheiro, a função retoma o numero que conseguir ler em caso de erro
int fread(const void *ptr, int size, int n, FILE *fp)
Onde:
const void *ptr : Este apontador tem que apontar para o endereço de memória que queremos guardar, e é void pois é um apontador que pode apontador para qualquer tipo
int size: Indica o tamanho
int n: Indica o numero elementos que queremos escrever
FILE *fp : o ficheiro onde vamos guardar a informação
Posicionamento do Ficheiro
Imagine mos que temos que ir ate a ultima linha do nosso ficheiro, podemos fazer pelo Acesso Sequencial indo linha a linha ate a ultima, mas temos uma forma muito mais rápida de conseguirmos o mesmo resultado, esse método chama se Acesso Directo.
- fseek - é usado para posicionar o ficheiro, a função devolve 0 em caso de erro e um valor diferente de 0 em caso de ser verdadeiro
int fseek (FILE *fp, long offset, int origin)
Onde:
FILE *fp : é o ficheiro onde nos queremos posicionar
long offset : Indica o número de bytes que queremos andar (Positivo anda para a frente, Negativo anda para trás)
int origin : Indica de que ponte inicial nos queremos iniciar o posicionamento
- ftell - devolve a posição actual no ficheiro
long ftell (FILE *fp)
- rewind - coloca o ponteiro no inicio do ficheiro
rewind(fp)
int feof (FILE *fp)