我想做的是重载我的 Book 类的 >> 运算符,以便在一行中从用户那里获取未知数量的整数。之后,我需要创建一个数组。
我试过这个:
istream& operator>>( istream& in, Book& b )
{
int x;
delete[] b.editionYears;
b.editionNo = 0;
b.editionYears = new int[0];
cin>>x;
b.addEdition(x);
return in;
}
我称之为
cout << A << endl;
在测试类中,其中 A 是 Book 对象。
我试过这个,但在这里,当用户输入类似“1 2 3 4”的内容时,它只删除数组并向其添加 1,在第二次调用中它再次删除 1 并添加 2。
我期望的是,如果用户输入“1 2 3 4”,它应该删除 editionYears 数组,重新创建并向其中添加 1,2,3,4。
那我该怎么做呢?感谢您的帮助。
最佳答案
您的问题出在 cin
的使用上。尝试使用 std::getline
.
这个其他答案可能会有所帮助 https://stackoverflow.com/a/5838803/5355195
关于c++ - 如何在以空格分隔的行中获得无限输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55440380/