按空格拆分字符串难度

时间:2013-09-08 16:01:18

标签: c++ string iterator getline istringstream

我的代码工作除了一个问题,当我运行它时似乎没有返回第一个字符串。

    string text;
    cin >> text;
    getline(cin ,text);
    istringstream  iss(text);
    copy(istream_iterator<string>(iss),
            istream_iterator<string>(),
            ostream_iterator<string>(cout, "\n"));

因此,如果我的输入为bf "ing" filename,则只会输出:

"ing" 
filename

我想要它所以它可以像这样输出整行:

bf 
"ing"
filename

2 个答案:

答案 0 :(得分:0)

摆脱

cin >> text;

那个消费输入的第一个单词,将其读入text,然后通过在下一行覆盖text来丢弃它。

答案 1 :(得分:0)

假设您希望通过解析传递给std::istringstream的字符串打印整行,您应该先删除一个单独的单词,即删除该行

cin >> text;