0

我发布了一个较早的问题,寻求在我的代码中使用验证脚本的帮助。在一个非常有用的答案之后,我能够弄清楚我需要如何继续。好吧,我遇到了一个很大的障碍;

#include <iostream>
#include <sstream>
#include <string>
#include <ctype.h>

using namespace std;

int main()
{
        unsigned __int64 input = 0;
        int n, i;
        char str[]="c3po...";
        i=1;
        n=0;


        for (cout << "Input a number" << endl; cin >> input; cin.ignore(numeric_limits<int>::max(), '\n'))
    {
        cout << "We're parsing your input '" << input << "'\n";

     if (input % 2 == 0) 
        {
            cout << "Even!" << endl;
        }

    else if (input % 2 == 1)
        {
            cout << "Odd" << endl;
            cout << "Lets make it even shall we? " << "Your new number is... " << input + 1 << endl;
        }
    else (isalnum(str[i]));i++;
        { 
        cout << "We could not parse '" << input << "' as a number.\n";
        }    
    }
    system ("pause");
    return 0;
}

从我的代码中可以看出,验证脚本运行良好。我有一些我想解决的错误。

1-当我输入一个数字时,它会按应有的方式运行代码,但它也会显示

Could not parse 'inputted number' as a number

显然,当输入数字时,您不希望发生这种情况!

2- 对于错误消息,将输入的数字显示为 [0]。这与使用整数有关吗?如何解决这个问题?

谢谢!

4

1 回答 1

2

你的问题很简单,你在这条线上有小错误

else (isalnum(str[i]));

你的 else 语句以分号结尾,实际上什么也不做。每次都会执行以下语句。

i++;
    { 
    cout << "We could not parse '" << input << "' as a number.\n";
    } 
于 2012-11-19T00:26:39.917 回答