THOUSANDS OF FREE BLOGGER TEMPLATES

segunda-feira, 20 de outubro de 2008

Bem no ultimo post fiquei-me pela leitura de ficheiros caracter-a-caracter e como disse aqui estou com um post de continuação.
Agora vou falar de leitura de
Ficheiros de texto com a leitura/escrita formatada, onde usaremos as variáveis fprintf e fscanf.

fprintf - esta variavel escreve dados num ficheiro num formato indicado e só devem ser utilizadas em ficheiros de texto.


Como exemplo de fprintf têm agora um programa básico sobre isto:

#include <stdio.h>
int main(int argc, char *argv[]){

FILE *fp;

int a=1;
char b[30]="maria";
float c=2.3;

if(argc == 2){
fp = fopen(argv[1], "w");
fprintf(fp, "%d %s %.1f", a, b, c);
fclose(fp);
}
else
printf("É necessário especificar um nome de ficheiro.\n");
return 0;
}


Neste programa:
- o nome do ficheiro e digitado através da linha de comandos ao compilar por exemplo: "./fprintf dados.txt"
- o programa grava no ficheiro "dados.txt" as palavras: "1 maria 2.3"
- e aberto no modo de escrita ("w")


Agora o fscanf; Com esta variavel, entramos no ficheiro e lê-mos os dados que existem lá.
Por exemplo:
#include <stdio.h>
int main(int argc, char *argv[]){

FILE *fp;

int a;
char b[30];
float c;

if((fp = fopen(argv[1], "r"))!=NULL){
fscanf(fp, "%d %s %f", &a, b, &c);
printf("a = %d\n", a);
printf("b = %s\n", b);
printf("c = %.1f\n", c);
fclose(fp);
}
else
printf("O ficheiro especificado não existe!\n");
return 0;
}



Neste programa:
- o ficheiro e aberto através da linha de comandos como o exemplo acima.
- é aberto no modo de leitura ("r").
- Devolve o número de parâmetros que conseguiu ler com sucesso
- Se o ficheiro não existir ou não se encontrar na mesma pasta/localização o programa avisa que o ficheiro e inexistente.

E acaba aqui a minha introdução a manipulação de ficheiros de texto;

0 comentários: