Sao chép nội dung file trong C



Bài tập C: Sao chép nội dung từ file này sang file khác

Đây là bài tập C cơ bản giúp bạn hiểu cách mở file, đọc ghi file bởi sử dụng các hàm fopen(), fgetc()fputc() trong C.

Chương trình C

Dưới đây là chương trình C để giải bài tập sao chép nội dung từ file này sang file khác trong C:

#include
#include
 
int main() {
   FILE *fp1, *fp2;
   char a;
 
   fp1 = fopen("baitapc.txt", "r");
   if (fp1 == NULL) {
      puts("Khong the mo file nay");
      exit(1);
   }
 
   fp2 = fopen("baitapc1.txt", "w");
   if (fp2 == NULL) {
      puts("Khong the mo file nay");
      fclose(fp1);
      exit(1);
   }
 
   do {
      a = fgetc(fp1);
      fputc(a, fp2);
   } while (a != EOF);
 
   return(0);
}

Giải thích chương trình C trên

  • Đầu tiên chúng ta mở một file trong chế độ đọc:

    fp1=fopen("baitapc.txt","r");
    
  • và mở một file trong chế độ ghi:

    fp2=fopen("baitapc1.txt","w");
    
  • Bạn nên kiểm tra xem file đã được mở thành công hay không bởi sử dụng lệnh kiểm tra NULL.

    if(fp2==NULL)
    {
      //file khong duoc mo thanh cong  
    }
    
  • Nếu mọi thứ đã sẵn sàng: chúng ta bắt đầu đọc các ký tự từ file đã mở bởi sử dụng hàm fgetc(file) và sau đó ghi dữ liệu vào trong file khác bởi sử dụng hàm fputc(file).

  • Ký tự EOF, là viết tắt của End of File, xác định vị trí cuối cùng của file. Kiểm tra nếu gặp ký tự này thì tiến trình ghi dữ liệu vào file của chúng ta sẽ kết thúc.

    do {
        a = fgetc(fp1);
        fputc(a,fp2);
    }while(a!=EOF);

Kết quả của ví dụ C trên

Giả sử trong baitapc.txt chúng ta có nội dung sau:

Sao chép file trong C

Sau khi biên dịch chương trình C trên, bạn sẽ thấy trong baitapc1.txt có nội dung sau:

Sao chép file trong C
bai-tap-doc-ghi-file-trong-c.jsp