C++ 如何删除文本文件中直到某一点的所有行和字

C++ 如何删除文本文件中直到某一点的所有行和字,c++,visual-studio,text-files,C++,Visual Studio,Text Files,我的问题是,我有一个文本文件,其中包含了一大堆垃圾,在底部有几行保存了我需要的信息。我希望能够删除所有的垃圾,只保留有用的信息 我希望我可以附上文本文件,可以更好地解释它 有一个特定的职位,这是相关的这篇文章,我正在做,但我一直遵循它,它并没有解决我的问题。我尝试过数组和其他很多东西,但都不起作用 里面有这样的信息 |83Ïú¯–Ÿ ªÖ! 就在文本文件的底部,它有这个 000--------- 我想保留000之后的所有内容,其余部分我想删除。 打开原始文件进行读取。 std::ifstre

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

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

有一个特定的职位,这是相关的这篇文章,我正在做,但我一直遵循它,它并没有解决我的问题。我尝试过数组和其他很多东西,但都不起作用

里面有这样的信息

|83Ïú¯–ŸªÖ!
就在文本文件的底部,它有这个

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

  • 打开原始文件进行读取。
    std::ifstream-fin(原始文件名,std::ios::binary)
  • 打开一个新的临时文件以在同一目录中写入
    std::ofstreamfout(临时文件名,std::ios::binary)
  • 在原始文件中搜索标记图案:
  • 将临时文件重命名为与原始文件相同的名称:
    std::重命名(临时文件名、原始文件名)

注意:只有在Windows上才需要在
std::ios::binary
模式下打开文件。

创建一个只包含所需行的新文件。该文件看起来不像文本文件,而是包含一些文本的二进制文件。你需要知道二进制文件的格式才能读取和解析它,然后从文件中提取你想要的信息应该很简单。嗨,我和一个朋友仔细检查了一下,给我的文本文件实际上是一个视频中的文本文件。他基本上把视频变成了一个文本文件,并希望得到它底部的数据。希望这能让你更容易理解我的问题。@VijayYadav你试过我在回答中建议的方法吗?
    std::string marker = "000---------";
    auto it =
        std::search(std::istreambuf_iterator<char>(fin),
                    std::istreambuf_iterator<char>(), marker.begin(), marker.end());
    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));
    }