【问题标题】:Best way to loop through a char array line by line逐行循环遍历char数组的最佳方法
【发布时间】:2013-11-23 03:59:17
【问题描述】:

我有一个 char 数组,其中包含从 Web 检索到的文本文件。 逐行遍历此缓冲区并显示每个缓冲区的最佳方法是什么 行吗?

【问题讨论】:

  • 到目前为止你有没有尝试过?假设数组中有行尾,请搜索这些行并使用它们之间的行做你想做的事情。
  • 到目前为止我一无所获。我不知道要使用哪些功能或任何东西,所以不能谷歌它。新手在这里。

标签: c++ winapi


【解决方案1】:

好吧,既然这是 C++,请将您的 char 数组转换为字符串流,然后像处理任何其他流/文件一样处理它。 当然这样做会让你调用像 getline() 这样的函数。

string tmpstr(chararry,length); // length optional, but needed if there may be zero's in your data
istringstream is(tmpstr);

string line;
while (getline(is,line)) {
    // process line
}

【讨论】:

  • 感谢理查德的代码示例,我没想到会分发代码哈哈。可以混合字符和字符串吗?我之前在原生应用程序中使用过一次字符串并被嘲笑。
  • 使用 char 数组会比使用字符串更让你笑。字符串是我们应该如何处理字符束。
【解决方案2】:

另一个答案是一个很好的解决方案,但在将 char 数组复制到临时字符串时会产生成本。这可以通过使用 Boost 的 iostream 来避免 - 这样可以避免复制缓冲区,同时让您将其视为任何其他流。

#include <boost/iostreams/stream.hpp>

boost::iostreams::stream<boost::iostreams::array_source> stream(buffer, size);

【讨论】:

    猜你喜欢
    • 2016-01-14
    • 2021-12-12
    • 2014-01-07
    • 2021-10-15
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 2012-05-16
    相关资源
    最近更新 更多