我正在使用win32的ReadFile从子进程的管道中读取。这一次给了我一大堆字符以及每个块的大小,但是它们可能有也可能没有换行。我想逐行处理输出。最简单的方法是什么?

我考虑过将每个块附加到string上,最后使用stringstream逐行处理它,但是我想在数据进入时这样做。我想知道的窍门是,我应该如何以及在哪里检测新行的结尾?如果在找不到分隔符时仅streamreadergetline不返回任何内容...

最佳答案

追加到字符串,直到遇到换行符或数据结尾。然后,您在字符串中有一行,对其进行处理,然后清空字符串并重复。使用字符串的原因:您不知道一行可能有多长,并且字符串会根据需要为您进行重新分配等。

特殊情况:该行末尾没有任何内容的数据结尾可能不是一行,可以忽略。

干杯和健康。

关于c++ - 当数据成块进入时,最简单的方式获得一行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4904263/

10-11 22:55
查看更多