我正在使用win32的ReadFile
从子进程的管道中读取。这一次给了我一大堆字符以及每个块的大小,但是它们可能有也可能没有换行。我想逐行处理输出。最简单的方法是什么?
我考虑过将每个块附加到string
上,最后使用stringstream
逐行处理它,但是我想在数据进入时这样做。我想知道的窍门是,我应该如何以及在哪里检测新行的结尾?如果在找不到分隔符时仅streamreader
的getline
不返回任何内容...
最佳答案
追加到字符串,直到遇到换行符或数据结尾。然后,您在字符串中有一行,对其进行处理,然后清空字符串并重复。使用字符串的原因:您不知道一行可能有多长,并且字符串会根据需要为您进行重新分配等。
特殊情况:该行末尾没有任何内容的数据结尾可能不是一行,可以忽略。
干杯和健康。
关于c++ - 当数据成块进入时,最简单的方式获得一行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4904263/