在C++;如何区分整数和字符之间的区别? 我现在正在学习C++,我被要求制作一个程序来计算给定大小的存款利息。其中一个要求是,当输入非整数数据时,我们会显示一条错误消息

在C++;如何区分整数和字符之间的区别? 我现在正在学习C++,我被要求制作一个程序来计算给定大小的存款利息。其中一个要求是,当输入非整数数据时,我们会显示一条错误消息,c++,character,integer,C++,Character,Integer,但是,我无法确定如何检测是否输入了非整数数据。如果有人能提供一个如何解决这个问题的例子,我们将不胜感激 您需要找出输入值是否包含非数字字符。也就是说,除了0-9之外的任何东西 您必须首先将输入作为字符串,然后验证每个数字是否都是数字 您可以使用中定义的内置函数isdigit()迭代字符串并测试每个字符是否为有效数字。如果使用十进制数,您可能还希望允许使用单个逗号。您需要了解输入值是否包含非数字字符。也就是说,除了0-9之外的任何东西 您必须首先将输入作为字符串,然后验证每个数字是否都是数字 您可

但是,我无法确定如何检测是否输入了非整数数据。如果有人能提供一个如何解决这个问题的例子,我们将不胜感激

您需要找出输入值是否包含非数字字符。也就是说,除了0-9之外的任何东西

您必须首先将输入作为字符串,然后验证每个数字是否都是数字


您可以使用
中定义的内置函数isdigit()迭代字符串并测试每个字符是否为有效数字。如果使用十进制数,您可能还希望允许使用单个逗号。

您需要了解输入值是否包含非数字字符。也就是说,除了0-9之外的任何东西

您必须首先将输入作为字符串,然后验证每个数字是否都是数字


您可以使用
中定义的内置函数isdigit()迭代字符串并测试每个字符是否为有效数字。如果您使用的是十进制数,您可能还希望允许使用一个逗号。

您不必自己检查。表达式
(std::cin>>YourInteger)
的计算结果为bool,当且仅当成功读取
YourInteger
时,该表达式才为true。这就引出了这个成语

int YourInteger;
if (std::cin >> YourInteger) {
  std::cout << YourInteger << std::endl;
} else {
  std::cout << "Not an integer\n";
}
int整数;
如果(std::cin>>YourInteger){

std::cout您不必检查自己。表达式
(std::cin>>YourInteger)
的计算结果为布尔值,当且仅当成功读取
YourInteger
时才为真。这就引出了这个成语

int YourInteger;
if (std::cin >> YourInteger) {
  std::cout << YourInteger << std::endl;
} else {
  std::cout << "Not an integer\n";
}
int整数;
如果(std::cin>>YourInteger){
std::cout应该是一个足够清晰的起点

char* GetInt(char* str, int& n)
{
    n = 0;
    // skip over all non-digit characters
    while(*str && !isdigit(*str) )
        ++str;
    // convert all digits to an integer
    while( *str && isdigit(*str) )
    {
        n = (n * 10) + *str - '0';
        ++str;
    }
    return str;
}
应该是一个足够清晰的起点

char* GetInt(char* str, int& n)
{
    n = 0;
    // skip over all non-digit characters
    while(*str && !isdigit(*str) )
        ++str;
    // convert all digits to an integer
    while( *str && isdigit(*str) )
    {
        n = (n * 10) + *str - '0';
        ++str;
    }
    return str;
}