Запрет ввода символов в Linux консоле на C++

121
30 июня 2019, 01:10

как можно запретить ввод букв внутри терминала? Жмем клавишу, программа сразу отрабатывает, понимает, что это буква и ничего не происходит. Жмем на цифру, появляется в строке ввода цифра.

Answer 1

Придумал только так... Выглядит страшно, но работает так как хотел. Есть ошибка когда число слишком большое.

#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;
}
READ ALSO
Internal error. MavenArchiver

Internal error. MavenArchiver

Получаю при интале вот такую ошибкукто знает как исправить?

114
Документация по наведению мыши

Документация по наведению мыши

Изучаю Spring на IDE IntelJIdeaХочу почитать что делает тот или иной метод, аннотация

133
Многомодульный проект

Многомодульный проект

Есть проект (веб + андроид приложение) со следующей структурой:

136
Как узнать в каком Stage установлена Scene

Как узнать в каком Stage установлена Scene

Мне нужно создавать модальное окноВ мою функцию (назовем function()) приходит объект типа javafx

132