84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
拥有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,以及其返回值
楼上正解