首页 > 编程语言 >C++ 随机读写:文件流的定位

C++ 随机读写:文件流的定位

时间:2022-11-27 15:34:50浏览次数:38  
标签:iffile int 读写 位置 C++ outfile 随机 include open

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;
}

 

标签:iffile,int,读写,位置,C++,outfile,随机,include,open
From: https://www.cnblogs.com/smartlearn/p/16929773.html

相关文章