Хорошо, а можно ещё вопрос... Вот такой вот код:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| int x;
bool success = false;
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
cout << "Введите значение" << endl;
while(!success)
{
cin >> x;
if(cin.good())
{
cout << "Вы ввели значение " << x << endl;
success = true;
}
else
{
cout << "Значение введено неверно. Повторите ввод" << endl;
}
} |
|
Как бы его заставить нормально работать? После ввода неверного значения получается бесконечный цикл с выводом сообщения о невером значении... ума не приложу почему.
Подскажите, пожалуйста, в чем я не прав в этой программе
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
using namespace std;
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char input[10];
int value = INT_MIN;
cout << "Введите число" << endl;
cin >> input;
value = atoi(input);
cout << value << " " << errno << endl;
} |
|
Проблема в том, что errno всегда 0, т.е. отловить ошибку ввода не представляется возможным... подскажите что-нибудь дельное пожалуйста