【问题标题】:I want to open a file and get only half of the text of that file, I do not want to get everything [closed]我想打开一个文件并只获取该文件的一半文本,我不想获取所有内容 [关闭]
【发布时间】:2020-11-26 10:04:38
【问题描述】:

我想打开一个文件并只获取该文件的一半文本,我不想获取所有内容 我想打开一个文件并获得一半的文本 是怎么做到的?

【问题讨论】:

  • 请在问题中添加更多信息。显示您已经拥有的代码。你知道如何读取文件中的所有文本吗?
  • 你尝试了什么?你能读完整个文件吗?在您的情况下,什么是“获取”?阅读如何提供minimal reproducible example
  • 我想打开一个文本文件并获取一半的文本
  • 如果“该文件的一半文本”可以以字节为单位,这个stackoverflow.com/questions/50491833/… 可能会有所帮助。
  • 你说的一半文本是什么意思?第一行?每行一半?

标签: c++


【解决方案1】:

这并不复杂。重要的一点是您首先需要获取文件大小。

这里有很多关于如何获取文件大小的示例。例如见here

然后,您将文件大小除以 2。结果就是您要读取的字节数。

通过一个简单的 for 循环,您可以逐个字符地读取请求的次数。您可以存储在std::vector 或任何“容器”中,

如果您更高级,那么您将使用std::copy_nstd::istreambuf_iteratorstd::backinserter 一起用于std::vector。但一开始,带有push_back 函数的for-loop 就足够了。

如果您的问题与读取行有关,然后只读取文件的一半,那么方法就不同了。您需要阅读整个文件并计算换行符'\n'。然后你可以除以 2 并在你的 for 循环中使用 std::getline

有了这些信息,编写代码应该很容易。

【讨论】:

    猜你喜欢
    • 2011-01-15
    • 2014-05-14
    • 1970-01-01
    • 2016-04-12
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 2020-02-19
    相关资源
    最近更新 更多