在看《C++ primer》的时候发现以下程序在运行时有错,
程序运行到第二个while的时候就跳过了,无法出入第二个值,也没有弹出问题,百度后发现,缺少cin,sync()
clear是将流中的所有状态都置为有效值,但是还不够,需使用sync先清除缓冲区的内容。
解释:当第一个while循环输入无效字符时,因类型不符合就不会从输入流中提取字符,cin中保存的是上一次输入的字符。
那么使用sync先清空缓存区,然后再让cin有效。所以这两个一般一起使用。
在看《C++ primer》的时候发现以下程序在运行时有错,
程序运行到第二个while的时候就跳过了,无法出入第二个值,也没有弹出问题,百度后发现,缺少cin,sync()
clear是将流中的所有状态都置为有效值,但是还不够,需使用sync先清除缓冲区的内容。
解释:当第一个while循环输入无效字符时,因类型不符合就不会从输入流中提取字符,cin中保存的是上一次输入的字符。
那么使用sync先清空缓存区,然后再让cin有效。所以这两个一般一起使用。