Я опубликовал предыдущий вопрос с просьбой помочь с использованием сценария проверки в моем коде. После очень полезного ответа я смог понять, как мне действовать дальше. Ну, я натолкнулся на большое препятствие;
#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]. Это связано с использованием целого числа? Как это можно исправить?
Спасибо!
ваша проблема довольно проста, у вас есть небольшая ошибка в этой строке
else (isalnum(str[i]));
Ваше утверждение else заканчивается точкой с запятой и фактически ничего не делает. Следующие заявления будут выполняться каждый раз.
i++;
{
cout << "We could not parse '" << input << "' as a number.\n";
}
Других решений пока нет …