是while(stringstream>> var1>> var2)安全的做法吗?

时间:2014-03-14 09:14:24

标签: c++ initialization istream

在C ++中,以下是一种安全的做法:

int a;
int b;

while(stream >> a >> b) { // stream is std::cin or a stringstream
    //do something with a and b
}

a和b是否保证使用while循环内的流初始化?

1 个答案:

答案 0 :(得分:4)

是的,在这种情况下这是安全的[只要流和运营商的实施遵循标准所说的应该做的事情]

当然,如果您的类型不同于int,请说mytype,并为您的班级定义了自定义istream& operator >>(istream&, mytype&),则完全有可能出现错误在导致mytype的部分/全部字段未初始化的代码中。