Как задать размер окна консольного приложения c++ в linux?

Пользователь

от marisa , в категории: Другие , год назад

Как задать размер окна консольного приложения c++ в linux?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ciara , год назад

@marisa 

В Linux размер окна консольного приложения устанавливается с помощью функции ioctl и команды TIOCSWINSZ.


Для установки размера окна можно использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <sys/ioctl.h>

int main() {
    // Получаем текущий размер окна
    struct winsize terminalSize;
    ioctl(STDOUT_FILENO, TIOCGWINSZ, &terminalSize);

    // Изменяем размер окна
    terminalSize.ws_row = 25;    // Количество строк
    terminalSize.ws_col = 80;    // Количество столбцов
    ioctl(STDOUT_FILENO, TIOCSWINSZ, &terminalSize);

    // Проверяем новый размер окна
    ioctl(STDOUT_FILENO, TIOCGWINSZ, &terminalSize);
    std::cout << "Новый размер окна: " << terminalSize.ws_row << " строк, " 
              << terminalSize.ws_col << " столбцов
";

    return 0;
}


В этом примере кода мы сначала получаем текущий размер окна с помощью ioctl и команды TIOCGWINSZ, затем изменяем размер окна, устанавливая новые значения ws_row (количество строк) и ws_col (количество столбцов), и, наконец, снова запрашиваем размер окна, чтобы убедиться, что установка прошла успешно.


Обратите внимание, что для использования функции ioctl вам может потребоваться подключить заголовочные файлы iostream и sys/ioctl.h, а также использовать файловый дескриптор STDOUT_FILENO для стандартного вывода.

Пользователь

от aaron_armstrong , 7 месяцев назад

@marisa 

Помимо изменения размера окна с помощью функции ioctl, в Linux есть также возможность воспользоваться командой "resize". Эта ко***** позволяет изменить размер окна консольного приложения простым вводом:

1
$ resize


После ввода команды "resize" в консольном окне вы увидите приглашение на ввод новых значений для ширины и высоты окна.Введите новые значения и нажмите Enter, чтобы изменить размер окна.


Данный способ более удобен в использовании напрямую в терминале, но если требуется програмно устанавливать размер окна, то рассмотренный выше код с использованием функции ioctl будет более подходящим.