ไฟล์คือชุดของเรคคอร์ดหรือเป็นที่บนฮาร์ดดิสก์ซึ่งข้อมูลจะถูกเก็บไว้อย่างถาวร
ความต้องการของไฟล์
-
ข้อมูลทั้งหมดจะหายไปเมื่อโปรแกรมหยุดทำงาน
-
การจัดเก็บในไฟล์จะรักษาข้อมูลไว้แม้ว่าโปรแกรมจะยุติการทำงานก็ตาม
-
หากคุณต้องการป้อนข้อมูลจำนวนมาก โดยปกติจะใช้เวลามากในการป้อนข้อมูลทั้งหมด
-
เราสามารถเข้าถึงเนื้อหาของไฟล์ได้อย่างง่ายดายโดยใช้คำสั่งไม่กี่คำ
-
คุณสามารถย้ายข้อมูลจากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่งได้อย่างง่ายดายโดยไม่มีการเปลี่ยนแปลง
-
ด้วยการใช้คำสั่ง C เราสามารถเข้าถึงไฟล์ได้หลายวิธี
การทำงานของไฟล์
การทำงานของไฟล์ในภาษาซีมีดังนี้ -
- การตั้งชื่อไฟล์
- การเปิดไฟล์
- การอ่านจากไฟล์
- การเขียนลงในไฟล์
- ปิดไฟล์
ไวยากรณ์
ไวยากรณ์สำหรับ การประกาศตัวชี้ไฟล์ เป็นดังนี้ −
FILE *File pointer;
ตัวอย่างเช่น FILE * fptr;
ไวยากรณ์สำหรับการตั้งชื่อและการเปิดตัวชี้ไฟล์ เป็นดังนี้ −
File pointer = fopen ("File name", "mode"); ตัวอย่างเช่น หากต้องการผนวกโหมดของการเปิดไฟล์ ให้ใช้ไวยากรณ์ที่ระบุด้านล่าง −
FILE *fp;
fp =fopen ("sample.txt", "a"); หากไม่มีไฟล์อยู่ ระบบจะสร้างไฟล์ใหม่
หากมีไฟล์อยู่ เนื้อหาปัจจุบันจะถูกเพิ่มไปยังเนื้อหาเก่า
โปรแกรม
ต่อไปนี้เป็นโปรแกรม C สำหรับการเปิดไฟล์ในโหมดผนวกและนับจำนวนบรรทัดที่มีอยู่ในไฟล์ -
#include<stdio.h>
#define FILENAME "Employee Details.txt"
int main(){
FILE *fp;
char ch;
int linesCount=0;
//open file in read more
fp=fopen(FILENAME,"r");
if(fp==NULL){
printf("File \"%s\" does not exist!!!\n",FILENAME);
return -1;
}
//read character by character and check for new line
while((ch=getc(fp))!=EOF){
if(ch=='\n')
linesCount++;
}
//close the file
fclose(fp);
//print number of lines
printf("Total number of before adding lines are: %d\n",linesCount);
fp=fopen(FILENAME,"a"); //open fine in append mode
while((ch = getchar())!=EOF){
putc(ch,fp);
}
fclose(fp);
fp=fopen(FILENAME,"r");
if(fp==NULL){
printf("File \"%s\" does not exist!!!\n",FILENAME);
return -1;
}
//read character by character and check for new line
while((ch=getc(fp))!=EOF){
if(ch=='\n')
linesCount++;
}
//close the file
fclose(fp);
//print number of lines
printf("Total number of after adding lines are: %d\n",linesCount);
return 0;
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
Total number of lines before adding lines are: 3 WELCOME to Tutorials Its C Programming Language ^Z Total number of after adding lines are: 8