Как управлять положением курсора в консольном приложении c ++? - PullRequest
0 голосов
/ 18 января 2019

Я должен создать консольное приложение для школьного проекта, и оно касается игры Судоку, так что дело в том, что я не нахожу никакой борьбы с алгоритмом, но мне было интересно, смогу ли я нарисовать полную таблицу Sodoku с помощью c ++ и сделать пустые квадраты в качестве места ввода «данных», чтобы пользователь мог переместить курсор с помощью клавиш со стрелками к месту определенного числа, чтобы заполнить его соответствующим числом. Есть ли способ сделать это таким образом?

Ответы [ 3 ]

0 голосов
/ 18 января 2019

Посмотрите на библиотеку ncurses для создания текстовых пользовательских интерфейсов. Он отлично работает с Linux и Windows под Cygwin / MinGW.

0 голосов
/ 18 января 2019

Это зависит от вашей ОС / компилятора. Например, в VC ++ вы можете использовать this , а пример можно найти здесь .

#include <windows.h>
int main(){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos = {3, 6};
SetConsoleCursorPosition(hConsole, pos);
WriteConsole(hConsole, "Hello", 5, NULL, NULL);
return 0;
}

Если вы хотите сделать это в Linux с помощью компилятора g ++, вы можете использовать специальные библиотеки, такие как curses, или написать собственную реализацию (это будет немного сложно). Например, просто поместив курсор в нужную позицию, вы можете использовать это:

void gotoxy(int x,int y)    
{
    printf("%c[%d;%df",0x1B,y,x);
}
void clrscr(void)
{
    system("clear");
}
int main() {    
    int x=10, y=20;
    clrscr();
    gotoxy(x,y);
    printf("Hello World!");
}
0 голосов
/ 18 января 2019

В Windows вы должны использовать Windows API.

оттуда, используйте SetCursorPos() для него.

...