JesKei
Мастер
(2372)
7 лет назад
int i;
do {
if (!(cin >> i)) {
cin.clear();
while (cin.get() != '\n');
continue;
}
cin.ignore(cin.rdbuf()->in_avail());
break;
} while (true);
X4 CanalЗнаток (394)
7 лет назад
Что то сложно сильно. Мы такое еще не проходили. Наверно.
Можете объяснить как работает код? И что и как он проверяет.
Высший разум
(1270989)
7 лет назад
Считывай в строковую переменную, а там уже смотри что ввели.
X4 CanalЗнаток (394)
7 лет назад
С вводом в строку я умею делать проверку. А без строк как проверить?
Я у препода спросил на счет проверки со строкой. Он сказал, попробуйте сделать без строки.
Demon On Wheels
Просветленный
(30522)
7 лет назад
std::string str;
std::cin >> str;
//всё. далее можно проверять что там за символы в строке
std::size_t sz = str.size();
for(size_t i = 0; i < sz; ++i){
if( is_alpha(str[ i ]) ) std::cout << str[ i ] << " - это буква\n";
}
ещё проще сделать так
int i = atoi(str.data());
если в строке есть буквы то i будет равно 0
если нет то в i будет целочисленное значение введённое с клавиатуры
Сергей Жаков
Мудрец
(16208)
7 лет назад
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int i = 0;
i =getch();
if( isdigit(i )!= 0 )
cout <<"цифра = " << (char)i << endl;
else
cout << "ошибка символ = " << (char)i << endl;
return 0;
}