我希望从一行中获取用户的多个数字,并将其存储在向量中.这就是我这样做的方式:
vector<int> numbers;
int x;
while (cin >> x)
numbers.push_back(x);
Run Code Online (Sandbox Code Playgroud)
但是,在输入我的号码并按下回车后,就像这样:
1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
它将数字放在向量中,然后等待更多输入,这意味着我必须进入Ctrl+Z
退出循环.获取一行整数后如何自动退出循环,这样我就不必输入Ctrl+Z
?
实现此目的的最简单方法是使用字符串流:
#include <sstream>
//....
std::string str;
std::getline( std::cin, str ); // Get entire line as string
std::istringstream ss(str);
while ( ss >> x ) // Now grab the integers
numbers.push_back(x);
Run Code Online (Sandbox Code Playgroud)
要验证输入,循环后您可以执行以下操作:
if( !ss.eof() )
{
// Invalid Input, throw exception, etc
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
212 次 |
最近记录: |