vector<int> var;
int numb;
for(;;){
cin>>numb;
var.push_back(numb);
if(numb!='\n'){
break;
}}
insertionSort(var);
for(int i=0;i<var.size();i++){
cout<<var[i]<<" ";
}
}
当我输入例如1 2 3,当我按下Enter键时它只取第一个值。任何解决方案?
答案 0 :(得分:2)
您可以使用以下方式为标准输入使用迭代器
#include <iostream>
#include <vector>
#include <iterator>
int main()
{
std::vector<int> var( std::istream_iterator<int>( std::cin ),
std::istream_iterator<int>() );
for ( int x : var ) std::cout << x << ' ';
std::cout << std::endl;
return 0;
}
或者您可以使用像这样的循环
int numb;
while ( cin >> numb ) var.push( numb );
至于你的代码,你不能像你使用的那样阅读新的行字符。新行字符是当操作符&lt;&lt;&lt;使用。
答案 1 :(得分:0)
你可以使用cin&gt;&gt; a&gt;&gt; b&gt;&gt; C;在这种情况下,但简单地说,使用cin只会读入一个变量。如果你需要读取多个变量,那么更好的选择是读取一个字符串并从中提取它们。