c++::while (std::cin >> value)
来源:百度知道 编辑:UC知道 时间:2024/06/16 19:00:45
#include <iostream>
int main()
{
int amount = 0, value;
// 读入数据直到遇见文件结束符,计算所读入的负数的个数
while (std::cin >> value)
if (value <= 0)
++amount;
std::cout << "Amount of all negative values read is"
<< amount << std::endl;
return 0;
}
当我输入是0.0时,不是int类型,应该直接跳出循环的,它怎么显示1啊,我觉得应该是0???
int main()
{
int amount = 0, value;
// 读入数据直到遇见文件结束符,计算所读入的负数的个数
while (std::cin >> value)
if (value <= 0)
++amount;
std::cout << "Amount of all negative values read is"
<< amount << std::endl;
return 0;
}
当我输入是0.0时,不是int类型,应该直接跳出循环的,它怎么显示1啊,我觉得应该是0???
你输入0.0时,语句 std::cin >> value 虽然执行后对象cin被设置成无效状态,
但它还是给value赋了值为0, 所以满足 if (value <= 0) ... 这个条件判断。
如果你输入.0 或者 a 等非法格式,那么最后就有可能显示为0,
不肯定是因为你在代码中并未对变量value赋初值,存在不确定因素。
你还学这个啊?你看学编程的穷成啥样了?才五分?
我觉得可能是类型自动从FLOAT转化成INT型了