且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

流随机访问

更新时间:2022-08-22 08:15:22

17.39

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

int main()
{
    fstream inOut("copyOut",fstream::ate|fstream::in|fstream::out);
    if(!inOut)
    {
        cerr<<"Unable to open file!"<<endl;
        return EXIT_FAILURE;
    }
    auto end_mark=inOut.tellg();
    inOut.seekg(0,fstream::beg);
    size_t cnt=0;
    string line;
    while(inOut&&inOut.tellg()!=end_mark&&getline(inOut,line))
    {
        cnt+=line.size()+1;
        auto mark=inOut.tellg();
        inOut.seekp(0,fstream::end);
        inOut<<cnt;
        if(mark!=end_mark)
            inOut<<" ";
        inOut.seekg(mark);
    }
    inOut.seekp(0,fstream::end);
    inOut<<'\n';
    return 0;
}