esc последовательность в cout

158
09 января 2019, 13:40

Этот код все делает правильно: очищает экран, и вывод с первой строки, первой позиции ячейки:

write(1, "\x1b[999B\x1b[999C", 12);
//Тут будет код вычисляющий размер терминала(знаю про ioctl)
write(1, "\x1b[H", 3);
write(1, "\x1b[J", 3);
output();//посимвольно выводит в stdout из массива

Но если заменить первую строку на эту:

cout << "\x1b[999B\x1b[999C";

То вывод будет начинаться где-то с середины терминала(по-крайней мере в моем).
Сразу подумал, что cout добавляет в конец \0, но строка

write(1, "\x1b[999B\x1b[999C\0", 13);

ничего не меняет, все работает так же четко.

P.s. забыл упомянуть важную деталь, что терминал настроен в сыром режиме

READ ALSO
Thread.sleep() работает не так, как надо

Thread.sleep() работает не так, как надо

Пишу пошаговую 2D игру, где персонаж передвигается в строго заданном направлении по клеткам поляИспользую MouseListener

177
Чтение атрибутов из MANIFEST.MF

Чтение атрибутов из MANIFEST.MF

При компиляции Java приложения вписываются данные в MANIFESTMF файл которые потом должны использоваться при запуске приложения

187
Порядок фильтров в сервлетах без web.xml

Порядок фильтров в сервлетах без web.xml

Есть 3 фильтра: Filter1, Filter2, Filter3Каждый из них помечен аннотацией @WebFilter("/main")

158
Не передается extras через Intent

Не передается extras через Intent

Мне нужно выполнить определенные действия в активити запущенном через Intent, но по каким то причинам информация присоединенная к интенту (в которой...

171