首页 > 编程笔记 > C++笔记 阅读:2

C++指定位置读写文件(附带实例)

有时不需要对整个文件进行读写,只需对指定位置的某段数据进行读写,这时就需要通过移动文件指针来实现。

要实现在指定位置读写文件的功能,首先要了解文件指针是如何移动的。下面来认识下设置文件指针位置的 4 个函数:
位移字节数是移动指针的位移量,相对位置是参照位置,可取值如下:
例如,seekg(0,ios::beg) 可将文件指针移动到相对于文件头 0 个偏移量的位置,即指针在文件头。

【实例】创建一个 test.txt 文件,内容为 https://c.biancheng.net/c/。编写程序,用户输入某个指定位置,输出对应的字符。具体代码如下:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ifstream ifile;
    ifile.open("test.txt");
    if(!ifile)
    {
        cout << "can not open" << endl;
        return 0;
    }
    ifile.seekg(0,ios::end);
    int maxpos=ifile.tellg();
    int pos;
    cout << "Position:";
    cin >> pos;
    if(pos > maxpos)
    {
        cout << "is over file length" << endl;
    }
    else
    {
        char ch;
        ifile.seekg(pos);
        ifile.get(ch);
        cout << ch <<endl;
    }
    ifile.close();
    return 0;
}
程序运行结果为:

Position:9
c

在 test.txt 文件中含有字符串 "https://c.biancheng.net/c/",通过 maxpos() 可以获得文件长度,当用户指定位置不是文件末尾时,输出对应的字符,这里输出 "c"。

相关文章