从 stdin 获取数字列表并对它们进行标记
我如何从用户那里获取数字列表,然后对它们进行标记。
这就是我所拥有的,但除了第一个数字之外,它没有得到任何东西:
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
using namespace std;
int main()
{
string line = "";
cin >> line;
stringstream lineStream(line);
int i;
vector<int> values;
while (lineStream >> i)
values.push_back(i);
for(int i=0; i<values.size(); i++)
cout << values[i] << endl;
system("PAUSE");
return 0;
}
How would I get a list of numbers from the user and then tokenize them.
This is what I have but it doesn't get anything except for the first number:
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
using namespace std;
int main()
{
string line = "";
cin >> line;
stringstream lineStream(line);
int i;
vector<int> values;
while (lineStream >> i)
values.push_back(i);
for(int i=0; i<values.size(); i++)
cout << values[i] << endl;
system("PAUSE");
return 0;
}
Related Posts:
C++, Going from string to stringstream to vector
Int Tokenizer
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这可能是将
cin
中的值读取到容器中的最简单方法:Here is probably the easiest way to read values from
cin
into a container:我相信cin>> 空格中断,这意味着您只能获取输入的第一个数字。
尝试:
I believe cin >> breaks on whitespace, which means you're only getting the first number entered.
try:
就像 Donnie 提到的 cin 在空格上中断一样,所以要克服这个问题,我们可以使用“getline()”,下面的示例效果很好:
Like Donnie mentioned cin breaks on whitespace, so do overcome this we can use a 'getline()', the following example works nicely:
在主要的顶部
on top of main
是的,and 是 getline 的字符串版本,而不是 istream 版本。
Yep, and is the string version of getline, no the istream one.
好的:帕维尔·米纳耶夫有最好的答案。
但所有提到 cin 的人都会在空白处中断。
这是一件好事(因为它也忽略了空格);
OK: Pavel Minaev has the best answer.
But all the people mentioning that cin breaks on white space.
That is a good thing (because it also ignores white space);