Раньше я программист на C (хочу больше знать о системном программировании, но не хочу больше разбираться в ассемблере, поэтому я выбираю C), но позже в моем университете мне нужно взять C ++, у меня на самом деле тяжеловремя использования объекта cin
и cout
, поскольку в нем есть некоторые изменения, сравнивается с моим доверенным макросом printf()
, scanf()
, getchar()
в C.Вот код.
Код
int main(void)
{
using namespace std;
cout << "What is the number?\n\n";
cout << "#Number :";
cin >> num;
while(cin.fail())
{
cin.clear();
cin.ignore(1000 , '\n');
cout << "Please enter a number\n\n";
cout << "#Number :";
cin >> num;
}
return 0;
}
Вопрос
1.) Я хочу, чтобы этот код запрашивал у пользователя число (меньше и больше или равно 0), когда пользователь вводитсимвол или строка, я хочу, чтобы он предупреждал пользователя об этом, очищал входной буфер и перекомпоновывал пользователя для нового значения, пока оно не станет числом.
2.) Так что я просто гуглю и нахожу страницу, проповедующую методТак что я просто следую по пути, но это не удалось.Я понятия не имею, почему после запуска этого кода, введите символ, это вызовет бесконечный цикл вывода Please enter a number
. Любая ошибка, совершенная мной в этом коде ??
Спасибо за тратывремя чтения моей проблемы
P / S: я использую CodeBlocks с компилятором minGW.