先看我的代码:

#‎include‬ <iostream>
#include <ctype.h>
using namespace std;
int main()
{
    int a,b;
    cout << "Enter two digits" << endl;
    cin >> a >> b;
    if (isdigit(a))
        if (isdigit(b))
            cout << a+b << endl;
        else
            cout << "Invalid Digit";
    return 0;
}

所以当我们输入一些东西时,只输出空格。
如果用户点击非数字或任何字母,我想要做的是打印
程序应该显示无效的字符串,或者如果用户点击任何数字,它必须显示两位数的总和

最佳答案

由于您正在读取 int 变量,因此您输入的任何内容都必须是整数,否则输入运算符将失败。如果你想读取字符并检查它们是否是数字,你应该读入 char 变量,然后你需要在操作它们之前将它们转换为正确的整数值。

尝试类似:

inline int to_int(const char ch)
{
    return ch - '0';
}

// ...

char a, b;
if (std::cin >> a >> b)
{
    if (std::isdigit(a) && std::isdigit(b))
        std::cout << to_int(a) + to_int(b) << '\n';
    else
        std::cout << "One is not a digit\n";
}
else
    std::cout << "Error in input\n";

如果您只想输入两个通用整数值,那么您已经在正确的轨道上,您只需要确保输入正常:
int a, b;
if (std::cin >> a >> b)
    std::cout << a + b << '\n';
else
    std::cout << "Error in input (most likely not integers in input)\n";

关于c++ - 制作条件 isdigit(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18122061/

10-11 16:52