Код работает с libstdc++, но с libc++.
При нажатии клавиши со стрелкой ВВЕРХ
- получите вывод 1b 5b 41, если он скомпилирован с помощью g++ -std=c++23 rawkey.cpp или clang++ -std=c++23 -stdlib=libstdc++ rawkey.cpp. Это правильно.
- получите вывод 1b, если скомпилировать его с помощью clang++ -std=c++23 -stdlib=libc++ rawkey. cpp
#include
#include
#include
using namespace std;
void get_raw_key()
{
auto buf = cin.rdbuf();
vector keys;
string endline("\r\n");
auto pump_buf = [&]() {
cerr sbumpc()); // buf->sgetc() buf->sbumpc() getchar() cin.get()
while (buf->in_avail() > 0)
keys.push_back(buf->sbumpc());
};
auto dump_key = [&]() {
stringstream str;
for (const auto num : keys)
str
Подробнее здесь: https://stackoverflow.com/questions/793 ... en-libstdc
Мобильная версия