Leitura ao escrita
* r - abre o ficheiro de texto para leitura, se não existir, fopen, (..) devolve NULL
* w - Cria o ficheiro de texto para escrita. Caso já exista , esvazia-o previamente
* a - Abre o ficheiro de texto, se já existe, ou cria um novo ficheiro, se não existe, para escrita a partir do fim do ficheiro (append)
domingo, 16 de dezembro de 2012
Manipulação de ficheiros
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
FILE *fp1, *fp2;
int contador=0;
char linha[200];
fp1 = fopen("ficheiro1.txt","r");
fp2 = fopen("ficheiro2.txt","w");
while(fgets(linha,200,fp1))
{
contador++;
if(contador%2 == 0)
{
fputs(linha,fp2);
}
}
fclose(fp1);
fclose(fp2);
}
Explicação do código
1º- Definir os apontadores para os ficheiros (fp1 e fp2);
2º- Definir a variável "linha" que vai ser usada para conter o buffer de cada linha do primeiro ficheiro.
Definir um contador, inicializando a zero. Serve para testar se as linhas lidas são pares (quando o contador é um número par) ou se são ímpares;
3º- Abrir os dois ficheiros, um para leitura e outro para escrita:
fp1 = fopen("ficheiro1.txt","r"); // ler no ficheiro
fp2 = fopen("ficheiro2.txt","w"); // escrever no ficheiro
4º- Enquanto ouver linhas para ler, é lida uma linha de cada vez do ficheiro 1
while(fgets(linha,200,fp1))
É incrementado o contador porque foi lida mais uma linha do ficheiro 1.
Se o resto da divisão inteira por 2 for zero, que significa que a linha lida é par, escrevemos essa linha no ficheiro 2
fputs(linha,fp2);
5º- Fechar os ficheiros com o fclose.
Subscrever:
Mensagens (Atom)