Guião laboratorial n.º 3 – exercício 5
Desenvolva uma função que troque o conteúdo de dois ficheiros. Os nomes dos ficheiros são passados como argumentos da função.
#include <stdio.h> #include <stdlib.h> void trocaC(char *t1, char *t2){ FILE *f1; FILE *f2; FILE *temp1, * temp2; char chO1,chO2; f1=fopen(t1, "r"); f2=fopen(t2, "r"); temp1=fopen("temp1.txt", "w"); temp2=fopen("temp2.txt", "w"); if(f1==NULL){ printf("\nerro ao abrir o ficheiro %c", *t1); return; } if(f2==NULL){ printf("\nerro ao abrir o ficheiro %c", *t2); return; } if(temp1==NULL || temp2==NULL){ printf("\nerro ao abrir o ficheiro temp"); return; } //-----------------------copiar dos originais para o temporario while((chO1=fgetc(f1))!=EOF){ fputc(chO1, temp1); } while((chO2=fgetc(f2))!=EOF){ fputc(chO2, temp2); } printf("\ncopia do ficheiro %c::%c para o temp com sucesso", *t1, *t2); fclose(temp1); fclose(temp2); fclose(f1); fclose(f2); //-----------------------copiar do temporario para os originais temp1=fopen("temp1.txt", "r"); temp2=fopen("temp2.txt", "r"); f1=fopen(t1, "w"); f2=fopen(t2, "w"); while((chO1=fgetc(temp1))!=EOF){ fputc(chO1, f2); } while((chO2=fgetc(temp2))!=EOF){ fputc(chO2, f1); } fclose(temp1); fclose(temp2); fclose(f1); fclose(f2); remove("temp1.txt"); remove("temp2.txt"); } int main() { char s1[20], s2[20]; printf("Qual o nome do 1 ficheiro?"); gets(s1); printf("Qual o nome do 2 ficheiro?"); gets(s2); trocaC(s1, s2); return 0; }
Tags : copia ficheiros texto, ficheiros, Learn C
0 thoughts on “Guião laboratorial n.º 3 – exercício 5”