while(stringstream>;>;var1>;>;var2)是安全的做法吗? 在C++中,下面是一个安全的实践: int a; int b; while(stream >> a >> b) { // stream is std::cin or a stringstream //do something with a and b }

while(stringstream>;>;var1>;>;var2)是安全的做法吗? 在C++中,下面是一个安全的实践: int a; int b; while(stream >> a >> b) { // stream is std::cin or a stringstream //do something with a and b },c++,initialization,istream,C++,Initialization,Istream,a和b a是否保证使用while循环中的流中的值初始化?是的,在这种情况下这是安全的[只要流和运算符的实现遵循标准要求他们应该做的] 当然,如果您有不同于int的类型,比如说mytype,并且为您的类定义了自定义的istream&operator>(istream&,mytype&),那么代码中完全可能有一个bug,导致mytype的部分/所有字段未初始化 是的,在这种情况下这是安全的[只要流和操作符的实现遵循标准要求他们应该做的] 当然,如果您有不同于int的类型,比如说mytype,并且为您

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

是的,在这种情况下这是安全的[只要流和运算符的实现遵循标准要求他们应该做的]


当然,如果您有不同于
int
的类型,比如说
mytype
,并且为您的类定义了自定义的
istream&operator>(istream&,mytype&)
,那么代码中完全可能有一个bug,导致
mytype
的部分/所有字段未初始化

是的,在这种情况下这是安全的[只要流和操作符的实现遵循标准要求他们应该做的]

当然,如果您有不同于
int
的类型,比如说
mytype
,并且为您的类定义了自定义的
istream&operator>(istream&,mytype&)
,那么代码中完全可能有一个bug,导致
mytype
的部分/所有字段未初始化