C:
การอ่านไฟล์ข้อความ
วิธีการ:
เพื่อเริ่มต้นการอ่านไฟล์ข้อความใน C, คุณต้องใช้งานฟังก์ชันหลักๆ เช่น fopen()
, fgets()
, และ fclose()
จากไลบรารีมาตรฐาน I/O ต่อไปนี้เป็นตัวอย่างง่ายๆ ที่อ่านไฟล์ชื่อ example.txt
และพิมพ์เนื้อหาของมันออกไปยังแอวต์พุตมาตรฐาน:
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *filePointer;
char buffer[255]; // บัฟเฟอร์เพื่อเก็บบรรทัดข้อความ
// เปิดไฟล์ในโหมดอ่าน
filePointer = fopen("example.txt", "r");
// ตรวจสอบว่าไฟล์ถูกเปิดสำเร็จหรือไม่
if (filePointer == NULL) {
printf("Could not open file. \n");
return 1;
}
while (fgets(buffer, 255, filePointer) != NULL) {
printf("%s", buffer);
}
// ปิดไฟล์เพื่อปล่อยทรัพยากร
fclose(filePointer);
return 0;
}
สมมติว่า example.txt
มีเนื้อหาดังนี้:
Hello, World!
Welcome to C programming.
ผลลัพธ์จะเป็น:
Hello, World!
Welcome to C programming.
ศึกษาลึกลงไป
การอ่านไฟล์ใน C มีประวัติศาสตร์ยาวนาน, ย้อนกลับไปถึงยุคแรกๆ ของ Unix เมื่อความเรียบง่ายและความสวยงามของสตรีมข้อความมีความสำคัญ ซึ่งนำไปสู่การนำไฟล์ข้อความมาใช้ในหลายวัตถุประสงค์ รวมถึงไฟล์การตั้งค่า, การบันทึก, และการสื่อสารระหว่างกระบวนการ ความเรียบง่ายของไลบรารี I/O ของภาษา C, ตัวอย่างโดยฟังก์ชันเช่น fopen()
, fgets()
, และ fclose()
, ตระหนักถึงปรัชญาการออกแบบที่ให้เครื่องมือพื้นฐานที่โปรแกรมเมอร์สามารถใช้สร้างระบบที่ซับซ้อนได้
จากประวัติศาสตร์, แม้ว่าฟังก์ชันเหล่านี้จะได้รับความนิยมในการประยุกต์ใช้มากมาย แต่การปฏิบัติการโปรแกรมร่วมสมัยได้เน้นไปที่ข้อจำกัดบางอย่าง, เฉพาะเจาะจงเกี่ยวกับการจัดการข้อผิดพลาด, การเข้ารหัสไฟล์ (เช่น, การรองรับ Unicode), และการเข้าถึงพร้อมกันในแอปพลิเคชันหลายสายเธรด ทางเลือกในภาษาอื่นๆ หรือแม้แต่ใน C โดยใช้ไลบรารีเช่น libuv
หรือ Boost.Asio
สำหรับ C++, นำเสนอโซลูชันที่แข็งแกร่งยิ่งขึ้นโดยการจัดการกับประเด็นเหล่านี้โดยตรงด้วยความสามารถในการจัดการ I/O ที่ซับซ้อนมากขึ้น รวมถึงการดำเนินการ I/O แบบอะซิงโครนัสที่สามารถเพิ่มประสิทธิภาพของแอปพลิเคชันที่ต้องจัดการกับการดำเนินการอ่านไฟล์จำนวนมากหรืองานที่จำกัดโดย I/O
แม้จะมีความก้าวหน้าเหล่านี้ แต่การเรียนรู้ที่จะอ่านไฟล์โดยใช้ไลบรารีมาตรฐาน I/O ใน C ยังคงเป็นสิ่งสำคัญ มันไม่เพียงช่วยให้เข้าใจพื้นฐานของการจัดการไฟล์ที่สามารถใช้ได้ในหลายบริบทการเขียนโปรแกรม แต่ยังให้ฐานความรู้ที่ผู้คนสามารถชื่นชมการวิวัฒนาการของการดำเนินการ I/O ของไฟล์และสำรวจไลบรารีและเฟรมเวิร์กที่ซับซ้อนขึ้นและร่วมสมัยสำหรับการจัดการไฟล์ในแอปพลิเคชันสมัยใหม่