【发布时间】:2021-12-04 17:11:58
【问题描述】:
我有一个 txt 文件,它有 500,000 行,每行有 5 列。我想从这个文件中读取数据并将其写入不同的 5000 个 txt 文件,每个文件有 100 行,从输入文件的第一行到最后一行。此外,文件名与订单号一起输出,例如“1_Hello.txt”,它从第 1 行到第 100 行,“2_Hello.txt”,从第 101 行到第 200 行,依此类推,直到“5000_Hello.txt”。 txt",第 499901 行到第 500000 行。
我曾经运行以下代码来编写少于 10 个文件的文件。但是在 5000 个文本文件的情况下如何编写呢?任何帮助将不胜感激。
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
vector<string> VecData;
string data;
ifstream in("mytext.txt");
while (in >> data) {
VecData.push_back(data);
}
in.close();
ofstream mynewfile1;
char filename[]="0_Hello.txt";
int i, k=0, l=0;
while(l<VecData.size()){
for(int j='1';j<='3';j++){
filename[0]=j;
mynewfile1.open(filename);
for( i=k; i<k+((int)VecData.size()/3);i+=5){
mynewfile1<<VecData[i]<<"\t";
mynewfile1<<VecData[i+1]<<"\t";
mynewfile1<<VecData[i+2]<<"\t";
mynewfile1<<VecData[i+3]<<"\t";
mynewfile1<<VecData[i+4]<<endl;
}
mynewfile1.close();
l=i;
k+=(int)VecData.size()/3;
}
}
cout<<"Done\n";
return 0;
}
【问题讨论】:
标签: c++ string readfile writefile