繁体   English   中英

C ++输入重载卡在while循环中

[英]C++ Input Overloading stuck in while loop

所以基本上在C ++中,我试图使用运算符重载将多个对象输入到Vector中。 在我的main()中,我有一个while循环,该循环从文本文件中读取书籍,然后将它们存储在以下字符串中:

 String name, title, pages, classcode, status;

然后,我去创建我的Book对象:

Book b(name,title pages,classcode, status);

之后,我使用操作符重载使用cin将对象输入到我的向量中。

cin >> b;

我的重载函数如下所示:

istream &operator>>( istream  &input, Book &b )
  { 


input >>  b.classCode;
input >> b.author;
input >> b.title;
input >> b.status;
input >>  b.numPages;


 return input;
 }      

我正在尝试使用运算符重载将对象存储为的向量,但是每次我运行程序时,它只会存储一个Book对象。

要将Book多个实例存储在std::vector<Book> ,可以编写以下代码:

std::vector<Book> v;
Book b;
while (std::cin >> b)
    v.push_back(b);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM