Изменение позиции курсора - 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);
Объяснение кода листинга программы
- Подключается библиотека kernel32.dll, функция GetStdHandle(STD_OUTPUT_HANDLE) из этой библиотеки используется для получения дескриптора консоли.
- Объявляются переменные:
- HANDLE consoleoutput — дескриптор консоли;
- COORD Coord — структура, содержащая координаты курсора;
- CONSOLE_SCREEN_BUFFER_INFO ScreenBufferInfo — структура, содержащая информацию о буфере экрана консоли.
- Получается информация о состоянии буфера экрана консоли, где хранится текущее положение курсора, с помощью функции GetConsoleScreenBufferInfo(consoleoutput, &ScreenBufferInfo).
- Координата X (горизонтальная) оставляется без изменений, т.е. Coord.X = ScreenBufferInfo.dwCursorPosition.X.
- Меняем координату Y (вертикальная) на единицу больше, т.е. Coord.Y = ScreenBufferInfo.dwCursorPosition.Y + 1.
- Устанавливаем курсор на новую позицию с помощью функции SetConsoleCursorPosition(consoleoutput, Coord).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д