Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình sao chép nội dung của một tệp vào một tệp khác

Tệp là một tập hợp các bản ghi (hoặc) là một nơi trên đĩa cứng, nơi dữ liệu được lưu trữ vĩnh viễn. Bằng cách sử dụng các lệnh C, chúng ta có thể truy cập tệp theo nhiều cách khác nhau.

Thao tác trên tệp

Các thao tác có thể được thực hiện trên tệp bằng ngôn ngữ C như sau -

  • Đặt tên cho tệp.
  • Mở tệp.
  • Đọc từ tệp.
  • Đang ghi vào tệp.
  • Đang đóng tệp.

Cú pháp

Cú pháp để mở và đặt tên tệp như sau -

FILE *File pointer;

Ví dụ:FILE * fptr;

File pointer = fopen ("File name”, "mode”);

Ví dụ:fptr =fopen ("sample.txt", "r");

FILE *fp;
fp = fopen ("sample.txt”, "w”);

Cú pháp để đọc từ tệp như sau -

int fgetc( FILE * fp );// read a single character from a file

Cú pháp để ghi vào tệp như sau -

int fputc( int c, FILE *fp ); // write individual characters to a stream

Với sự trợ giúp của các chức năng này, chúng tôi có thể sao chép nội dung của một tệp này sang tệp khác.

Ví dụ

Sau đây là Chương trình C để sao chép nội dung của một tệp sang tệp khác -

#include <stdio.h>
#include <stdlib.h> // For exit()
int main(){
   FILE *fptr1, *fptr2;
   char filename[100], c;
   printf("Enter the filename to open for reading \n");
   scanf("%s",filename);
   // Open one file for reading
   fptr1 = fopen(filename, "r");
   if (fptr1 == NULL){
      printf("Cannot open file %s \n", filename);
      exit(0);
   }
   printf("Enter the filename to open for writing \n");
   scanf("%s", filename);
   // Open another file for writing
   fptr2 = fopen(filename, "w");
   if (fptr2 == NULL){
      printf("Cannot open file %s \n", filename);
      exit(0);
   }
   // Read contents from file
   c = fgetc(fptr1);
   while (c != EOF){
      fputc(c, fptr2);
      c = fgetc(fptr1);
   }
   printf("\nContents copied to %s", filename);
   fclose(fptr1);
   fclose(fptr2);
   return 0;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter the filename to open for reading
file3.txt
Enter the filename to open for writing
file1.txt
Contents copied to file1.txt