【发布时间】:2015-02-12 14:22:34
【问题描述】:
我有以下代码:
int a , b , sum;
cin>>a>>b;
sum=a+b;
cout<<sum;
我完全知道您不能将浮点值存储在整数中。 所以在我的程序第一次运行期间:
10 2.5
12
我得到 12 的预期输出,因为 2.5 的小数部分被忽略了
在第二次运行中,我将浮点值放在首位:
2.5 10
442837
我得到一个垃圾值,有人知道发生了什么吗?
感谢您的帮助:)
【问题讨论】:
-
"编译器会忽略 2.5 的小数部分" - 不是编译器会忽略它,因为您在运行时输入了这个数字。
-
@barakmanos 是的,我的错
-
最好将所有内容都读入
doubles,然后在需要时将其转换为ints。在任何情况下:检查您的流的状态:if (!cin) { error(); }. -
这可能会帮助您理解问题的其余部分(提示:它是
cin对象在运行时“忽略”2.5 的小数部分)。 -
5gon12eder 是对的,我打赌你的 cin 需要被清除
标签: c++