Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

C โปรแกรมสำหรับคัดลอกเนื้อหาของไฟล์หนึ่งไปยังอีกไฟล์หนึ่ง


ไฟล์คือชุดของบันทึก (หรือ) เป็นที่บนฮาร์ดดิสก์ซึ่งข้อมูลจะถูกเก็บไว้อย่างถาวร ด้วยการใช้คำสั่ง C เราสามารถเข้าถึงไฟล์ได้หลายวิธี

การทำงานของไฟล์

การดำเนินการที่สามารถดำเนินการกับไฟล์ในภาษา C ได้มีดังนี้ −

  • การตั้งชื่อไฟล์
  • กำลังเปิดไฟล์
  • การอ่านจากไฟล์
  • กำลังเขียนลงในไฟล์
  • กำลังปิดไฟล์

ไวยากรณ์

ไวยากรณ์สำหรับการเปิดและตั้งชื่อไฟล์ เป็นดังนี้ −

FILE *File pointer;

ตัวอย่างเช่น FILE * fptr;

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

ตัวอย่างเช่น fptr =fopen ("sample.txt”, "r”);

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

ไวยากรณ์สำหรับ การอ่านจากไฟล์ เป็นดังนี้ −

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

ไวยากรณ์สำหรับ การเขียนลงในไฟล์ เป็นดังนี้ −

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

ด้วยความช่วยเหลือของฟังก์ชันเหล่านี้ เราสามารถคัดลอกเนื้อหาของไฟล์หนึ่งไปยังอีกไฟล์หนึ่งได้

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม 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;
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

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