gpt4 book ai didi

c++ - 你如何设置 istream_iterator 不忽略空行

转载 作者:行者123 更新时间:2023-11-30 04:38:01 28 4
gpt4 key购买 nike

我在 istream_iterator 读取文件时遇到问题,因为它会忽略空行,但我需要将这些空行包含为“”。

我应该如何修改下面的程序以获得 vector 中的 5 条线?

#include <sstream>
#include <string>
#include <iostream>
#include <vector>
#include <iterator>

using namespace std;
int main(int argc, const char *argv[])
{
string test = "There\nare\n\nfive\nstrings";
stringstream stream(test);
vector<string> v;
copy(istream_iterator<string>(stream),istream_iterator<string>(),back_inserter(v));
cout << v.size() << endl;
return 0;
}

最佳答案

这里的问题不在于 istream_iterator - 它在于流,它被设置为将所有运行的连续“空白”视为单个分隔符。

正如我在之前的回答中概述的那样,有多种方法可以使 istream_iterator 变为 read line-by-line尽管。请注意,在另一种情况下,它们的工作方式会有所不同:如果一行中有多个单词,例如:“There are\nfour\n\nstrings”,这会将“There are”读作单个字符串,其中您的原件会将其读作两个单独的字符串。不过,我不确定在那种情况下您真正想要什么(或者它可能永远不会出现,所以您不在乎)。

关于c++ - 你如何设置 istream_iterator 不忽略空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3416335/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com