为什么输入浮点数return了还会输出最后一个值
c++吧
全部回复
仅看楼主
level 5
求各位大牛解答
2019年08月31日 12点08分 1
level 5
我希望的是输入1 2 3 4.4 然后输出 3 2 1,为什么会把4输出出来了
2019年08月31日 12点08分 2
level 11
4不是整数?
2019年08月31日 12点08分 3
我输入的是4.4,流也成功的变成了fail,所以应该是return而不会输出4的吧
2019年08月31日 12点08分
@御坂º美琴 你怎么知道4.4是被整体读掉的?
2019年08月31日 13点08分
@M_P_C_King [乖]不是很懂大佬的意思,不过5楼我单单输入了一个浮点,请大佬看看[太开心]
2019年08月31日 13点08分
level 8
你i是整形,cin只会读个整形的4进来,后面的.4被认为是无效的。或者说根本原因,i是整形,调用的是参数类型为int的>>运算符重载函数,只会读整形。这是c++不是python也不是matlab,不会根据你的输入自动判断是整形还是浮点。
2019年08月31日 13点08分 4
先不管整形这个。我输入了浮点,然后流的状态就变成了fail,并且也输出了"fail",那么后面的cout应该是不会调用的呀
2019年08月31日 13点08分
5楼我只输入了一个浮点数,并且也输出了fail并且return,那么在下面的语句不应该被执行啊
2019年08月31日 13点08分
@御坂º美琴 你这不叫浮点,你这叫4点4三个字符,读整形的规则就是从第一个数字开始,读到不是数字的结束,你这点就不是数字,后面的就全扔了,流也变成fail。
2019年08月31日 13点08分
@⚡射命丸文⚡ 好的[乖],大佬别气。那流变成了fail以后那么函数不是应该return了嘛,为什么还输出了数字。大佬别气,我有点呆[委屈]
2019年08月31日 13点08分
level 5
输入一个数的话大家可能看得清楚些
2019年08月31日 13点08分 5
level 1
先读了一个3 读下一个点点的时候 fail 所以栈中压了一个3
Output:
fail
3
2019年08月31日 13点08分 6
谢谢大佬,懂了[玫瑰]
2019年08月31日 14点08分
1