c ++写矢量元素来分割文件

时间:2015-02-17 05:02:46

标签: c++ vector ifstream

鉴于我有一个vector<string> lines,其中包含从文件中读取的所有行,我怎样才能将向量的内容写回文件,除了将每个文件分割x多行。我更加坚持使用分块问题而不是写回文件。一个例子是if

int offset = 10000;
std::vector<std::string> lines(27000);

...assuming lines has been initialized with lines

鉴于上述情况我应该

file1:10000

file2:10000

file3:7000

1 个答案:

答案 0 :(得分:1)

很简单,你只需要一个循环和一个if语句。

ofstream output;
string filename = "filename";
int fileNum = 0;

for(int i = 0; i < vec.size(); ++i){
    if(i % 10000 == 0){
        if(output.is_open()) output.close();
        output.open(filename + to_string(++fileNum));
    }
    output << vec.at(i);
}

output.close();

这将为27000行文件保存“filename1”,“filename2”和“filename3”中的文件。

免责声明:自由撰写:可能包含语法错误。