将对象Cevelop到未初始化的变量char junk

时间:2018-04-10 20:02:38

标签: c++ cevelop

Cevelop反对char junk作为"未初始化的变量"。在这种情况下解决问题的正确方法是什么?

enter image description here

 friend std::ostream& operator<<(std::ostream& os_a, College& college_a) {
   return os_a <<  college_a.id_ + ' ' + college_a.name_;
 }

 friend std::istream& operator>>(std::istream& is_a, College& college_a) {
   char junk;
   return is_a >> college_a.id_ >> std::noskipws
       >> junk, std::getline(is_a, college_a.name_);  // name: between 1st space and endofline.
  }

1 个答案:

答案 0 :(得分:3)

你有两个选择,你可以将junk初始化为某种东西,或者你可以摆脱它。既然你知道你只需要吃一个空间就可以使用get之类的

return is_a >> college_a.id_, is_a.get(), std::getline(is_a,college_a.name_);

它会做同样的事情。您还可以使用

使代码更容易阅读
is_a >> college_a.id_;
is_a.get();
std::getline(is_a,college_a.name_);
return is_a;