บทนำ
seekg() เป็นฟังก์ชันในไลบรารี iostream ใช้ seek ตำแหน่ง שרירותย (arbitrary position) ในไฟล์ ใช้หลักเพื่อตั้งตำแหน่งของตัวอักษรถัดไปที่จะอ่านจาก input stream ของไฟล์ใน C++ file handling
Syntax
istream& seekg(streamoff offset, ios_base::seekdir dir); istream& seekg(streampos position); โดยที่: position: ตำแหน่งใหม่ใน stream buffer offset: ค่าจำนวนเต็มประเภท streamoff แทน offset ใน buffer เทียบกับ dir dir: ทิศทางการ seek เป็นออบเจ็กต์ ios_base::seekdir รับค่าคงที่ได้ 3 ทิศทาง: ios_base::beg = จากจุดเริ่มต้นของ stream buffer ios_base::cur = จากตำแหน่งปัจจุบันใน stream buffer ios_base::end = จากจุดสิ้นสุดของ stream buffer
ขั้นตอนและการดำเนินการที่จำเป็น
Begin เปิดไฟล์ข้อมูลสำหรับ input/output เพิ่ม 'TutorialsPoint' ลงในไฟล์ Seek ไปตำแหน่ง 9 จากจุดเริ่มต้นของไฟล์ อ่าน 5 ตัวอักษรถัดไปจากไฟล์เข้า buffer F จบ F ด้วย null character พิมพ์เนื้อหา ปิดไฟล์ End
ตัวอย่างโค้ด
#include <fstream>
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
fstream File("d.txt", ios::in | ios::out);
File << "TutorialsPoint";
File.seekg(9, ios::beg);
char F[9];
File.read(F, 5);
F[5] = 0;
cout << F << endl;
File.close();
return 0;
}
ผลลัพธ์
Point