1.seekg:

作用:设置输入流的位置

参数 1: 偏移量
参数 2: 相对位置
beg :相对于开始位置
cur:  相对于当前位置
end:相对于结束位置
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;

//设置输入流的位置:
int main() {
    ifstream iffile;
    iffile.open("users.txt");
    if (!iffile.is_open()) {
        cout << "打开失败!" << endl;
        return 1;
    }
    iffile.seekg(-10,iffile.end);
    while (!iffile.eof()) {
        string line;
        getline(iffile,line);
        cout << line << endl;
    }
    iffile.close();

    system("pause");
    return 0;
}

 2.tellg:

#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;

//返回该输入流的当前位置(距离文件的起始位置的偏移量)
//获取当前文件的长度:
int main() {
    ifstream iffile;
    iffile.open("源.cpp");
    if (!iffile.is_open()) {
        return 1;
    }
    //先把文件指针移动到文件尾
    iffile.seekg(0,iffile.end);

    int len = iffile.tellg();
    cout << "len:" << len << endl;

    iffile.close();

    system("pause");
    return 0;
}

 3.seekp:

#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;

//设置输出流的位置:
/*demo
先向新文件写入:“123456789”
然后再在第 4 个字符位置写入“ABC”*/
int main() {
    ofstream outfile;
    outfile.open("test.txt");
    if (!outfile.is_open()) {
        return 1;
    }
    outfile << "123456789";

    outfile.seekp(4,outfile.beg);
    outfile << "ABC";

    outfile.close();

    system("pause");
    return 0;
}

 

posted on 2022-11-27 15:26  wshidaboss  阅读(105)  评论(0编辑  收藏  举报