Изменение позиции курсора - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток! Может кто нибудь подсказать как изменить позицию текстового курсора ?

Решение задачи: «Изменение позиции курсора»

textual
Листинг программы
HANDLE consoleoutput = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD Coord;
    CONSOLE_SCREEN_BUFFER_INFO ScreenBufferInfo = { 0 };
    
    // Получить информацию о состоянии буфера экрана консоли,
    // где хранится текущее положение курсора
    GetConsoleScreenBufferInfo(consoleoutput, &ScreenBufferInfo);
 
    // Координату Х оставить прежней
    Coord.X = ScreenBufferInfo.dwCursorPosition.X;
 
    // Меняем координату Y
    Coord.Y = ScreenBufferInfo.dwCursorPosition.Y + 1;
 
    // Установать курсор
    SetConsoleCursorPosition(consoleoutput, Coord);

Объяснение кода листинга программы

  1. Подключается библиотека kernel32.dll, функция GetStdHandle(STD_OUTPUT_HANDLE) из этой библиотеки используется для получения дескриптора консоли.
  2. Объявляются переменные:
    • HANDLE consoleoutput — дескриптор консоли;
    • COORD Coord — структура, содержащая координаты курсора;
    • CONSOLE_SCREEN_BUFFER_INFO ScreenBufferInfo — структура, содержащая информацию о буфере экрана консоли.
  3. Получается информация о состоянии буфера экрана консоли, где хранится текущее положение курсора, с помощью функции GetConsoleScreenBufferInfo(consoleoutput, &ScreenBufferInfo).
  4. Координата X (горизонтальная) оставляется без изменений, т.е. Coord.X = ScreenBufferInfo.dwCursorPosition.X.
  5. Меняем координату Y (вертикальная) на единицу больше, т.е. Coord.Y = ScreenBufferInfo.dwCursorPosition.Y + 1.
  6. Устанавливаем курсор на новую позицию с помощью функции SetConsoleCursorPosition(consoleoutput, Coord).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.667 из 5
Похожие ответы