【发布时间】:2012-01-12 17:47:54
【问题描述】:
我试图让用户输入将被推入向量的数字, 然后使用函数调用来计算这些数字。
为什么这不起作用?我只能数第一个数字。
template <typename T>
void write_vector(const vector<T>& V)
{
cout << "The numbers in the vector are: " << endl;
for(int i=0; i < V.size(); i++)
cout << V[i] << " ";
}
int main()
{
int input;
vector<int> V;
cout << "Enter your numbers to be evaluated: " << endl;
cin >> input;
V.push_back(input);
write_vector(V);
return 0;
}
【问题讨论】:
-
根据我的经验,cin 只捕获字符串中的第一个标记,因此空格之后的任何内容都会被截断。如果你真的想使用 cin,要么分别读取每个变量,要么让用户用逗号分隔值,然后解析它。或者你可以在 main 方法中使用 argv 数组。
-
您是否尝试使用其他变量?而不是同时使用 n 作为大小和临时输入。
-
你应该解释一下这里有什么问题。
-
@R.MartinhoFernandes BenjaminLindley 我同意你们的观点,但是我认为 OP 已经花了一些时间,并且可以得到答案。当然,您的方法要好得多。
标签: c++ function templates vector cin