Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การตั้งตำแหน่งด้วย seekg() ในการจัดการไฟล์ C++

บทนำ

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