簡體   English   中英

如何在C ++控制台應用程序中控制光標位置?

[英]How to control a cursor position in c++ console application?

我應該為學校項目創建一個控制台應用程序,並且它是關於Sudoku Game的,所以事情是我在算法上沒有發現任何困難,但是我想知道是否可以使用c ++繪制完整的Sodoku表並清空正方形作為“數據”輸入位置,因此用戶可以使用箭頭鍵將光標移動到特定數字的位置,以用適當的數字填充它。 有沒有辦法做到這一點?

在Windows中,您應該使用Windows API。

從那里,使用SetCursorPos()

查看用於創建基於文本的用戶界面的ncurses庫。 它可以在Linux和Cygwin / MinGW下的Windows下正常工作。

這取決於您的OS /編譯器。 例如,在VC ++中,您可以使用它,並且可以在此處找到示例。

#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;
}

如果要使用g ++編譯器在Linux中進行操作,則可以使用特殊的庫(例如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!");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM