gpt4 book ai didi

c++ - cin:检查数字是整数还是 float ,即使浮点值是 1.000

转载 作者:行者123 更新时间:2023-11-30 02:00:08 26 4
gpt4 key购买 nike

以下列方式使用 std::cin >> 数字时:

float number;
while(std::cin >> number) {
//perform a check here if possible

//if number does not contain a decimal point do this
for(int i = 0; i < number; i++) {
std::cin >> readMoreFloats;
}
//otherwise read 1000 more floats
}

有没有办法能够区分以下类型的行:

1.500 (1000 more floats)
2 2.000 2.000

这些行将以 float 或整数开头。如果行以 float 开头,我想再读 1000 个 float 。如果它是一个 int,我想读取那个 float 。我知道我可以将 float 转换为 int 并检查转换后的 int 是否等于 float,但是当 float 具有固定值(例如 1.000)时,这将不起作用。

我宁愿不使用 getline() 读取整行,因为将其拆分为后记非常耗时,而且我已经知道所有输入都是 float ,可能第一个数字除外。另一种方法是将每行的第一个值作为字符串读入并检查它是否包含句点。有没有办法在不先将输入作为字符串读取的情况下进行检查?或者是否需要字符串步骤。

最佳答案

你真的需要把它作为一个字符串来读取以检查是否有一个点吗?

为什么不先取一个整数呢?

int intNum = 0; char ch;

cin >> intNum;
cin.get(ch);

现在您可以使用另一个整数读取并组合成 float ,如果有 ia 点即 ch=='.'

关于c++ - cin:检查数字是整数还是 float ,即使浮点值是 1.000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15458051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com