发布网友 发布时间:2022-05-07 01:39
共2个回答
热心网友 时间:2023-10-11 06:21
函数istream& get(istream& hin)里面的while判断出了问题。 你的代码是:
while(hin>>val, !hin.eof())应该修改为:
while(hin>>val && !hin.eof())(,)这是C++里面的顺序操作符,先判断一下左边的操作符,然后直接执行,号右边的操作。因此最终while()判定的,其实只是while(!hin.eof())这个操作。hin>>val的结果留在缓冲中,根本没有来得及被清除,因此不停循环~~~。
小建议:ignore()后面最后不要直接写200这种magic number;标准作法:
#include <limits>
热心网友 时间:2023-10-11 06:21
楼上的作法对于这个问题来说是错误的,如果把循环改成while(hin>>val && !hin.eof())