我已阅读文件并将其内容存储到std::string
变量BUF
中,现在想将数据拆分为小块,每个块包含25行。
答案 0 :(得分:2)
我看到两个选项:
std::istringstream
构建BUF
(或使用您用来读取文件的流)并使用std::getline
逐行读取并追加到前一行,同时计算最多25行等等... std::string::find
,然后使用std::string::substr
或std::find
以及迭代器范围内的构造。我认为这是足够的暗示。
答案 1 :(得分:0)
我做到了!
if(N>25) \\N no of lines
{
int i=0;
std::istringstream ss(text);
text="";
string splited,part="";
while(std::getline(ss, splited, '\n')) {
part+=splited+"\n";
if(i==24)
{
i=0;
part.erase(part.size() - 1);
d.Insert(part,time);
cout<<part;
part="";
continue;
}
else{
++i;
continue;
}
}
if(i!=0)
{
d.Insert(part,time);
}
}
else{
d.Insert(text,time);
}