当手动将数组输入1时,尝试限制用户可以插入向量的输入量,但由于某种原因,它很奇怪。
#include <iostream>
using namespace std;
void fillVector(vector<int>& newThisIsAVector)
{
cout << "Please type in your 10 numbers separated by a space. On completion press enter.";
int input;
cin >> input;
while (newThisIsAVector.size() < 10)
{
newThisIsAVector.push_back(input);
cin >> input;
}
cout << endl;
}
它应该限制你在10但是它取10然后当你按Enter键时它会创建一个新行。然后键入第11个数字并再次按Enter键。然后脚本工作并注册前10个数字并完成其他命令,但前10个数字完全忽略不需要的第11个数字。 ; /
我该如何解决?
答案 0 :(得分:4)
在循环之前使用 db.once('open', function() {
var mongoData = new storageData();
mongoData.fill(obj);
var promise = new storageDataSchema(mongoData.getInformation());
console.log(promise.toString());
promise.save(function (err, promise) {
if (err) return console.error(err);
promise.speak();
mongoose.disconnect();
});
});
一次,在循环内部重复使用10次。 1 + 10等于11,因此要求输入11次。要将输入数量限制为10,您需要将调用限制为cin
为10。
答案 1 :(得分:0)
因为当你记录第10个元素的类型时,vector仍然有9个元素。所以在下一个循环回合中,你将在向量中添加第10个并要求第11个。
如果你知道它将输入10个元素,为什么不使用C ++ 11 std :: array?