我有一个大文本文件,我是 parsing 使用 string 流。文本文件看起来像这样
#####
##bjhbv
nvf
vbhjbj
vfjbvjf
*bj
*bvjbv
.
.
.
.
+FILE
data I want to parse from here to
.
.
.
.
-FILE
till here
#shv again comments
.
.
如何仅在 +FILE 到 -FILE 之间进行解析?我可以在里面解析它,但我只想忽略上面和下面的评论。请帮助我如何忽略 .txt 文件中的读取或 parsing 。任何线索将不胜感激。,
回答1
这样的事情应该这样做:
{
ifstream f_in(input_file_name);
ofstream f_out(output_file_name);
string line;
// discard up to "+FILE"
while (getline(f_in, line) && line != "+FILE");
// copy up to "-FILE"
while (getline(f_in, line) && line != "-FILE") f_out << line << endl;
}
ifstream
和 ofstream
将在离开范围时关闭它们各自的文件,这就是我在 {}
中显示它们的原因。
回答2
正如您在评论中看到的,您可以丢弃上面的 +FILE。你可以使用 std::istream::ignore
您可以将分隔符指定为 +FILE
然后您可以处理您的逻辑。并在“-FILE”匹配后用条件打断。