使用stringstream的getline分隔符

时间:2013-04-27 17:14:06

标签: c++ getline stringstream

似乎它并没有将空间内的单词分开。

尝试将两者之间的单词分开,并将其存储在第一个和第二个中。

cin >> name; //input name 
stringstream file (name);
getline(file,first, ' '); //seperate the name with the first name and last name using space 
getline(file,second, ' ');

2 个答案:

答案 0 :(得分:3)

替换

cin >> name;

getline(cin, name); //input name

cin >>仅读取第一个空格。如果你做了cout << name;来检查读取的内容,你就会意识到这一点 - 这是调试的第一步。

答案 1 :(得分:2)

使用cin >> name;读取初始输入时,只能读取第一个空格字符。

然后你尝试在白色空间将其分成两部分,但它并不包含。

简单方法:

cin >> first >> second;

或者,如果您从std::getline(cin, name);而不是cin >> name;开始,那么其余的应该正常工作。