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???

你输入0.0时,语句 std::cin >> value 虽然执行后对象cin被设置成无效状态,
但它还是给value赋了值为0, 所以满足 if (value <= 0) ... 这个条件判断。
如果你输入.0 或者 a 等非法格式,那么最后就有可能显示为0,
不肯定是因为你在代码中并未对变量value赋初值,存在不确定因素。

你还学这个啊?你看学编程的穷成啥样了?才五分?

我觉得可能是类型自动从FLOAT转化成INT型了