как можно запретить ввод букв внутри терминала? Жмем клавишу, программа сразу отрабатывает, понимает, что это буква и ничего не происходит. Жмем на цифру, появляется в строке ввода цифра.
Придумал только так... Выглядит страшно, но работает так как хотел. Есть ошибка когда число слишком большое.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <termios.h>
#include <iostream>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <sstream>
using namespace std;
int RotateNumber(int number) {
std::ostringstream output_stream;
int result;
output_stream << number;
std::string str_number = output_stream.str();
std::reverse(str_number.begin(),str_number.end());
std::istringstream input_stream(str_number, std::istringstream::in);
input_stream >> result;
return result;
}
int main()
{
char c;
int temp;
int tempp = 1;
int end = 0;
struct termios tty, savetty;
while (true){
fflush(stdout);
tcgetattr(0, &tty);
savetty = tty;
tty.c_lflag &= ~(ISIG | ICANON);
tty.c_cc[VMIN] = 1;
tcsetattr(0, TCSAFLUSH, &tty);
read(0, &c, 1);
tcsetattr(0, TCSANOW, &savetty);
if ( c == '0' || c == '1' || c == '2' || c == '3' || c == '4' || c == '5' || c == '6' || c == '7' || c == '8' || c == '9')
{
temp = c - '0';
end += temp * tempp;
tempp *= 10;
}
else
{
system("clear");
cout << RotateNumber(end);
}
}
return 0;
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Изучаю Spring на IDE IntelJIdeaХочу почитать что делает тот или иной метод, аннотация
Мне нужно создавать модальное окноВ мою функцию (назовем function()) приходит объект типа javafx