การจัดการไฟล์ใน C++
การเปิดไฟล์ก่อนทำงานเป็นสิ่งจำเป็น โหมดการเปิดกำหนดสิทธิ์การเข้าถึง
โหมด r (Read Only)
- เปิดไฟล์เพื่อ อ่านอย่างเดียว
- ถ้าไฟล์ไม่มีอยู่ -> คืนค่า NULL
- ไม่สามารถเขียนได้
โหมด r+ (Read/Write)
- เปิดไฟล์เพื่อ อ่านและเขียน
- ไฟล์ต้องมีอยู่แล้ว (ไม่สร้างใหม่)
- Pointer เริ่มต้นที่จุดแรกของไฟล์
ตัวอย่างโค้ดเปิดไฟล์โหมด r
#include <stdio.h>
#include <iostream>
using namespace std;
int main() {
FILE* readFile;
char ch;
readFile = fopen("file.txt", "r");
while (1) {
ch = fgetc(readFile);
if (ch == EOF) break;
cout << ch;
}
fclose(readFile);
return 0;
}
ตัวอย่างโค้ดเปิดไฟล์โหมด r+
#include <stdio.h>
#include <iostream>
using namespace std;
int main() {
FILE* readFile;
char ch;
readFile = fopen("file.txt", "r+");
while (1) {
ch = fgetc(readFile);
if (ch == EOF) break;
cout << ch;
}
fclose(readFile);
return 0;
}
สรุปความแตกต่าง
| คุณสมบัติ | r | r+ |
|---|---|---|
| อ่าน | ได้ | ได้ |
| เขียน | ไม่ได้ | ได้ |
| สร้างไฟล์ใหม่ถ้าไม่มี | ไม่ | ไม่ |
| ตำแหน่ง Pointer เริ่มต้น | จุดแรก | จุดแรก |