【发布时间】:2013-11-23 03:59:17
【问题描述】:
我有一个 char 数组,其中包含从 Web 检索到的文本文件。 逐行遍历此缓冲区并显示每个缓冲区的最佳方法是什么 行吗?
【问题讨论】:
-
到目前为止你有没有尝试过?假设数组中有行尾,请搜索这些行并使用它们之间的行做你想做的事情。
-
到目前为止我一无所获。我不知道要使用哪些功能或任何东西,所以不能谷歌它。新手在这里。
我有一个 char 数组,其中包含从 Web 检索到的文本文件。 逐行遍历此缓冲区并显示每个缓冲区的最佳方法是什么 行吗?
【问题讨论】:
好吧,既然这是 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 数组复制到临时字符串时会产生成本。这可以通过使用 Boost 的 iostream 来避免 - 这样可以避免复制缓冲区,同时让您将其视为任何其他流。
#include <boost/iostreams/stream.hpp>
boost::iostreams::stream<boost::iostreams::array_source> stream(buffer, size);
【讨论】: