gpt4 book ai didi

c++ - 如何从文本文件中删除特定点之前的所有行和单词

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:02:48 24 4
gpt4 key购买 nike

我遇到的问题是我有一个文本文件,其中包含一大堆垃圾,而在底部只有几行包含我需要的信息。我希望能够删除所有垃圾,只保留有用的信息。

我希望我能附上可以更好地解释它的文本文件。

有一篇与我正在做的这篇文章相关的特定文章,但是我已经关注了它,但它并没有解决我遇到的问题。我尝试过数组和许多其他方法,但都没有用。

里面有这样的信息

|83Ïú¯–ŸªÖ!

就在文本文件的底部有这个

000---------

我想保留 000 之后的所有内容,其余部分我想删除。

最佳答案

  • 打开原始文件进行阅读。
    std::ifstream fin(orig_filename, std::ios::binary);
  • 在同一目录中打开一个新的用于写入的临时文件
    std::ofstream fout(temp_filename, std::ios::binary);
  • 在原始文件中搜索标记模式:
    std::string marker = "000---------";
auto it =
std::search(std::istreambuf_iterator<char>(fin),
std::istreambuf_iterator<char>(), marker.begin(), marker.end());
  • fin 中的其余部分复制到 fout(如果找到了模式):
    if(it == std::istreambuf_iterator<char>()) {
std::cout << "pattern " << marker << " not found\n";
} else {
// the iterator "it" is now at the last char in the marker pattern,
// step over it and copy the rest to fout
std::copy(++it, std::istreambuf_iterator<char>(),
std::ostreambuf_iterator<char>(fout));
}
  • 将临时文件重命名为与原始文件相同的名称:
    std::rename(temp_filename, orig_filename);

注意:在 std::ios::binary 模式下打开文件是 afaik 仅在 Windows 上需要。

关于c++ - 如何从文本文件中删除特定点之前的所有行和单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56439683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com