sábado, 2 de outubro de 2010

FILE (funções)

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)



Detenção de End-of-File 
int feof (FILE *fp)

Sem comentários:

Enviar um comentário