Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม 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”);

โหมดการเปิดไฟล์

โหมดการเปิดไฟล์ในภาษา C มีคำอธิบายด้านล่าง -

โหมด คำอธิบาย
r ไฟล์ถูกเปิดสำหรับการอ่าน
w ไฟล์ถูกเปิดสำหรับการเขียน
a+ ไฟล์ที่เปิดสำหรับผนวก
r+ เปิดไฟล์สำหรับอ่านและเขียน
w+ ไฟล์ที่เปิดสำหรับเขียนและอ่าน
a+ ไฟล์ที่เปิดสำหรับการผนวก &อ่าน
rt ไฟล์ข้อความถูกเปิดสำหรับการอ่าน
น้ำหนัก ไฟล์ข้อความถูกเปิดสำหรับการเขียน
ที่ ไฟล์ข้อความถูกเปิดสำหรับการต่อท้าย
r+t เปิดไฟล์ข้อความสำหรับอ่านและเขียน
w+t เปิดไฟล์ข้อความสำหรับทั้งการเขียนและการอ่าน
a+t เปิดไฟล์ข้อความสำหรับการต่อท้ายและการอ่าน
rb เปิดไฟล์ไบนารีสำหรับการอ่าน
wb เปิดไฟล์ไบนารีสำหรับเขียน
ab เปิดไฟล์ไบนารีสำหรับการต่อท้าย
r+b เปิดไฟล์ไบนารีสำหรับทั้งการอ่านและการเขียน
w+b เปิดไฟล์ไบนารีสำหรับทั้งการเขียนและการอ่าน
a+b เปิดไฟล์ไบนารีสำหรับทั้งการต่อท้ายและการอ่าน
  • เขียนโหมดการเปิดไฟล์

ไวยากรณ์มีดังนี้ −

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

หากไฟล์นั้นไม่มีอยู่ ไฟล์ใหม่จะถูกสร้างขึ้น

หากไฟล์นั้นมีอยู่ เนื้อหาเก่าจะถูกลบและเนื้อหาปัจจุบันจะถูกจัดเก็บ

  • โหมดอ่านการเปิดไฟล์

ไวยากรณ์มีดังนี้ −

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

หากไฟล์ไม่มีอยู่ ฟังก์ชัน fopen จะคืนค่า NULL

หากมีไฟล์อยู่ ข้อมูลจากไฟล์จะถูกอ่านสำเร็จ

  • ต่อท้ายโหมดของการเปิดไฟล์

ไวยากรณ์มีดังนี้ −

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

หากไม่มีไฟล์อยู่ ระบบจะสร้างไฟล์ใหม่

หากมีไฟล์อยู่ เนื้อหาปัจจุบันจะถูกเพิ่มไปยังเนื้อหาเก่า

โหมด ออก ไม่ออก
R อ่าน fp="NULL"
W เนื้อหาปัจจุบัน ไฟล์ใหม่จะถูกสร้างขึ้น
A เนื้อหาเก่าเนื้อหาปัจจุบัน
ไฟล์ใหม่จะถูกสร้างขึ้น

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C สำหรับการดำเนินการกับไฟล์ -

//Program for copying the contents of one file into another file
#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
file2.txt
Enter the filename to open for writing
file1.txt
Contents copied to file1.txt