C ++ Numeric Validation — Используется цикл

Я опубликовал предыдущий вопрос с просьбой помочь с использованием сценария проверки в моем коде. После очень полезного ответа я смог понять, как мне действовать дальше. Ну, я натолкнулся на большое препятствие;

#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]. Это связано с использованием целого числа? Как это можно исправить?

Спасибо!

0

Решение

ваша проблема довольно проста, у вас есть небольшая ошибка в этой строке

else (isalnum(str[i]));

Ваше утверждение else заканчивается точкой с запятой и фактически ничего не делает. Следующие заявления будут выполняться каждый раз.

i++;
{
cout << "We could not parse '" << input << "' as a number.\n";
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector