gpt4 book ai didi

c++ - c++:检查它是否是类中的数字

转载 作者:行者123 更新时间:2023-12-01 14:53:49 25 4
gpt4 key购买 nike

在这段代码中,我想知道两个数字是Int还是String:

#include <iostream>
using namespace std;

class calculate{
private:
bool checkNumbers(int num1, int num2){
if(isdigit(num1) && isdigit(num2)){
return true;
}else{
return false;
}
}

public:
void sum(int x, int y){
bool chek=checkNumbers(x, y);
if(chek==true){
cout<< "yes it is Number"<< endl;
}else{
cout<< "Nope! String"<<endl;
}
}
};

int main()
{
calculate calulate;
calulate.sum(3, 2);
return 0;
}

但是运行代码后,我只看到 不!字符串,表示它是字符串。谁知道出什么问题了?
我用 isdigit 检查了数字,我刚发送了两个数字
calulate.sum(3, 2);

但是什么都没有!
谢谢

最佳答案

您的问题与std::isdigit(int)的用法有关

该功能旨在检查int是否等于10个以char表示的十进制数字0123456789之一。但是,此功能仅对int值48-57有效。
int应该是char的整数值。如果要解析true,请使用48-57,其中480491等等。

请注意,如果您向函数传递了char(例如“3”),则该函数自然会解析为true,就像一个注释者所述。这是因为char(3) == int(51)

例如:

isdigit('1'); // This is true, because '1' is a "char" digit
isdigit(49); // This is true

isdigit(1); // This is false
isdigit(60); // This is false

关于c++ - c++:检查它是否是类中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59653449/

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