拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
该代码会一直循环测试输入流是否正常,直到输入流到达文件末尾,或者输入流出错。
while括号里的表达式不是应该结果是bool类型吗?为何可以是输入语句呢?
while括号中的表达式的确是bool类型,所以你可以纠结一下 `cin >> n`这个表达式的返回值到底是什么(`>>`正常读取,返回的是cin的地址值;读入错误时,则返回0)
Q: 那它又如何跳出呢?难道输入的数是0才跳出循环?
跳出循环的两种输入方式: windows下 `ctrl+z` linux下 `ctrl+d`
恩。。。。其实我也是一知半解,但我比较纠结的是你所说的“查不到”,如果你是真的查不到答案,我想分享一下我的体验。首先呢,对于像我这样的资深小白来说,一直坚信着:只有想不到的小白题,没有查不到的答案。然后咧,就有啥查啥呗,比如这道题,你可以随意摆渡一下 while(cin>>n),就会发现一堆你想要的答案(eg.啥时候能跳出循环);再然后,像你这样已经不只是纠结于什么时候能停,而考虑起关于表达式值的问题,完全可以去查while和cin >> n的返回值,看看到底暗藏什么玄机。小白伸手党很容易做的,不过显然不如自己一层一层抽丝剥茧地去追溯一个问题来得有趣(这个话是用来鼓励我自己的XD)
while(cin>>n)
while
cin >> n
另分享一个挺棒的答案:cin,cout,以及其返回值
楼上正解
该代码会一直循环测试输入流是否正常,直到输入流到达文件末尾,或者输入流出错。
while括号里的表达式不是应该结果是bool类型吗?为何可以是输入语句呢?
Q: 那它又如何跳出呢?难道输入的数是0才跳出循环?
恩。。。。其实我也是一知半解,但我比较纠结的是你所说的“查不到”,如果你是真的查不到答案,我想分享一下我的体验。
首先呢,对于像我这样的资深小白来说,一直坚信着:只有想不到的小白题,没有查不到的答案。
然后咧,就有啥查啥呗,比如这道题,你可以随意摆渡一下
while(cin>>n)
,就会发现一堆你想要的答案(eg.啥时候能跳出循环);再然后,像你这样已经不只是纠结于什么时候能停,而考虑起关于表达式值的问题,完全可以去查
while
和cin >> n
的返回值,看看到底暗藏什么玄机。小白伸手党很容易做的,不过显然不如自己一层一层抽丝剥茧地去追溯一个问题来得有趣(这个话是用来鼓励我自己的XD)
另分享一个挺棒的答案:cin,cout,以及其返回值
楼上正解