簡體   English   中英

如何將光標定位在屏幕上?

[英]how to position the cursor on the screen?

我是編程新手,目前正在學習C語言中的數組。我正在制作一個謎題,其中包含15個編號的正方形塊,這些正方形塊安裝在框架上,而一個塊是空的。它允許用戶按任意箭頭鍵(向上,向下,向左,向右)。用戶將繼續按箭頭鍵,直到數字沒有按升序排列。這些片段可以水平和垂直移動。 我的問題是我不知道如何定位光標。我知道一個庫函數gotoxy(),但我認為它已在Turbo C / C ++中使用。我正在使用代碼塊。我在Google上搜索了此代碼,但無法無法得到結果。是的,我在談論鍵盤光標和使用窗口操作系統。請幫忙! :)

在過去,MS / DOS使用特殊的驅動程序ANSI.SYS來模擬ANSI命令代碼。 看起來這個舊驅動程序很好,可以在Windows XP下使用(但是您需要在config.sys中進行配置),但是我發現有些文章說它不再適用於Windows 7和更高版本。

因此ANSI(或vt100或vt220)代碼在Linux或Unix終端中很有用,但是在Windows下,我的建議是直接使用Wincon.h中聲明的Windows API控制台函數-但是在使用Windows時,您應該始終包括Windows.h API函數。

您將需要使用Windows SDK作為參考,但這是一個在位置15,5編寫foo_bar的小程序:

#include <windows.h>
#include <tchar.h> // compatibility 8/16 bits characters

int _tmain(int argc, const LPSTR *argv) {
    HANDLE hStdOut = ::GetStdHandle(STD_OUTPUT_HANDLE); // console output handle
    COORD dwCursorPosition;
    DWORD nb;
    dwCursorPosition.X = 15;
    dwCursorPosition.Y = 5;
    ::WriteConsoleOutputCharacter(hStdOut, _T("foo_bar"), 7, dwCursorPosition, &nb);

    return 0;
}

參考:MSDN上的控制台參考

暫無
暫無

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

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