ในบทสุดท้ายของบทเรียนภาษา C++ นี้ คุณจะได้เรียนการดำเนินการพื้นฐานกับไฟล์ โดยเราสามารถที่อ่านและเขียนบางอย่างลงไปใน text ไฟล์ fstream
เป็นไลบรารีมาตรฐานที่ช่วยให้เราสามารถดำเนินการบางอย่างกับไฟล์ โดยจะมี 3 steam classes ในไลบรารีที่แสดงในรายการข้างล่างนี้
- ofstream: Stream class เพื่อเขียนข้อมูลลงไฟล์
- ifstream: Stream class เพื่ออ่านข้อมูลจากไฟล์
- fstream: Stream class เพื่ออ่านข้อมูลและเขียนข้อมูลกับไฟล์
อย่างไรก็ตาม ในบทนี้เราจะทำงานกับแค่ text ไฟล์เท่านั้น
การเปิดไฟล์
สิ่ง
แรกที่คุณจะต้องทำก่อนที่จะทำบางอย่างกับไฟล์คือการเปิดไฟล์
เราสามารถเลือกใช้จากหนึ่งของสามคลาสที่เหมาะสมกับสิ่งที่เราต้องการจะทำได้
เพื่อที่จะเขียนหรืออ่าน และฟังก์ชันที่ใช้ในการเปิดไฟล์คือ
open()
มาดูตัวอย่าง
// open for write
ofstream myfile1;
myfile1.open("example1.txt");
// open file for read
ofstream myfile2;
myfile2.open("example2.txt");
// open file for read and write
ofstream myfile3;
myfile3.open("example3.txt");
Closing a file
หลังจากเราเสร็จงานของเราแล้ว เราต้องผิดไฟล์โดยการใช้ฟังก์ชัน
close()
myfile1.close();
myfile2.close();
myfile3.close();
การเขียนข้อมูลลงไฟล์ (text files)
เราสามารถเขียนตัวอักษร ข้อความหรือตัวเลข ลงไปในไฟล์โดยการใช้เครื่องหมาย
<<
กับไฟล์ที่เราต้องการจะเขียนไปยัง
#include <iostream>
#include <fstream>
using namespace std;
int main () {
ofstream myfile;
myfile.open ("example.txt");
myfile << "This is the first line.\n";
myfile << "The second line.\n";
myfile << 10.5;
myfile.close();
return 0;
}
ในตัวอย่าง เราได้เปิดไฟล์
example.txt และเขียนข้อความลงไปสองบรรทัด และตัวเลขอีกหหนึ่งบรรทัด และปิดไฟล์หลังจากที่เขียนเสร็จแล้ว เมื่อคุณเปิดดูไฟล์
example.txt สิ่งที่คุณเห็นในไฟล์ควรจะเป็นแบบนี้
This is the first line.
The second line.
10.5
การอ่านข้อมูลจากไฟล์ (text files)
ต่อไป เราจะมาอ่านเนื้อหาจากไฟล์ที่เราได้เพิ่งเขียนลงไป
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
ofstream myfile;
myfile.open ("example.txt");
while ( getline (myfile,line) )
{
cout << line << '\n';
}
myfile.close();
return 0;
}
ในตัวอย่าง เราใช้ while-loop วนรอบเพื่ออ่านข้อมูลจากไฟล์ ฟังก์ชัน
getline
เป็นฟังก์ชันของ string ที่ช่วยให้เราสามารถอ่านข้อมูลมาทีละบรรทัดและใส่ไว้ในตัวแปร
line
และฟังก์ชัน getline จะไม่อ่านการขึ้นบรรทัดใหม่ (\n) ในไฟล์ มันจะวนซ้ำจนกว่าจะสิ้นสุดบรรทัดสุดท้ายของไฟล์
ไม่มีความคิดเห็น:
แสดงความคิดเห็น