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

อธิบายการทำงานของโหมดเขียนของไฟล์ในภาษาซี


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

ความต้องการของไฟล์

  • ข้อมูลทั้งหมดจะหายไปเมื่อโปรแกรมหยุดทำงาน

  • การจัดเก็บในไฟล์จะรักษาข้อมูลไว้แม้ว่าโปรแกรมจะยุติการทำงานก็ตาม

  • หากคุณต้องการป้อนข้อมูลจำนวนมาก โดยปกติจะใช้เวลามากในการป้อนข้อมูลทั้งหมด

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

  • คุณสามารถย้ายข้อมูลจากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งได้อย่างง่ายดายโดยไม่มีการเปลี่ยนแปลง

  • ด้วยการใช้คำสั่ง C เราสามารถเข้าถึงไฟล์ได้หลายวิธี

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

การทำงานของไฟล์ในภาษาซีมีดังนี้ -

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

ไวยากรณ์

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

FILE *File pointer;

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

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

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

ตัวอย่างเช่น

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

โปรแกรม1

ต่อไปนี้เป็นโปรแกรม C เพื่ออ่านชื่อและเครื่องหมายของนักเรียนจำนวน n คนและจัดเก็บไว้ในไฟล์ -

#include <stdio.h>
int main(){
   char name[50];
   int marks, i, num;
   printf("Enter number of students: ");
   scanf("%d", &num);
   FILE *fptr;
   fptr = (fopen("std.txt", "w")); // opening file in write mode
   if(fptr == NULL){
      printf("Error!");
      exit(1);
   }
   for(i = 0; i < num; ++i){
      printf("For student%d\nEnter name: ", i+1);
      scanf("%s", name);
      printf("Enter marks: ");
      scanf("%d", &marks);
      fprintf(fptr,"\nName: %s \nMarks=%d \n", name, marks);
   }
   fclose(fptr);
   return 0;
}

ผลลัพธ์

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

Enter number of students: 3
For student1
Enter name: lucky
Enter marks: 59
For student2
Enter name: pinky
Enter marks: 89
For student3
Enter name: bob
Enter marks: 45

โปรแกรม2

ต่อไปนี้เป็นโปรแกรม C สำหรับจัดเก็บรายละเอียดของพนักงานในไฟล์และพิมพ์เหมือนกัน -

#include<stdio.h>
int main ( ){
   FILE *fp;
   int eno;
   char ename[30];
   float sal;
   fp =fopen ("emp.txt", "w"); // opening file in write mode
   printf ("enter the details of eno, ename, sal:");
   scanf ("%d%s%f", &eno, ename, &sal);
   fprintf (fp, "%d%s%f", eno, ename, sal);
   fclose (fp);
   fp = fopen ("emp.txt", "r");
   fscanf (fp, "%d%s%f", &eno, ename, &sal);
   printf ("employee no: = %d\n", eno);
   printf ("employee name = %s\n", ename);
   printf ("salary = %f\n", sal);
   fclose (fp);
   return 0;
}

ผลลัพธ์

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

enter the details of eno, ename, sal:1 Pinky 34000
employee no: = 1
employee name = Pinky
salary = 34000.000000