Re: [問題] 美國標準控制序列指令

看板C_and_CPP作者 (purpose)時間14年前 (2011/03/16 23:03), 編輯推噓6(601)
留言7則, 7人參與, 最新討論串2/2 (看更多)
※ 引述《tropical72 (藍影)》之銘言: : 問題(Question): : 因緣際會下上網到子由老師之網站, : http://www.math.ncu.edu.tw/~ziyou/c++/ : 發現了一段有趣的碼, : 截取後簡單的表示 : void cls() : { : printf("\x1b[2J"); : // cout << "\x1b[2J"); : } : 該網站提到 esc [ 2 J --> 清除螢幕且游標回歸左上角 : 不過遺憾的是這段碼在我手邊compiler (dev-c 4.9.9.2, vc6.0, vc2008, vc2010) : 無法正常執行(只會出現一些亂碼),後來又上 wiki 翻了翻 : http://zh.wikipedia.org/zh-tw/%E6%8E%A7%E5%88%B6%E5%AD%97%E7%AC%A6 : 不過實在是無法和 C 之跳脫字元做連想,因看該文之說明還蠻引起興趣研究, : 其中包含了 : 1. 游標上下移 n 列 : 2. 游標左右移 n 列 : 這些我只會用 windows.h - SetCursorPos API 去控制 : 想請教各位版友是否真可藉由 C/C++ 跳脫字元控制 console 之游標定位? : 謝謝各位 !! 回推文的問題 在新版 Windows 用 ANSI escape Sequence 比較麻煩,也許裝 cygwin 或用 Virutal PC 裝個 DOS 都比較快。 以下我是用 Windows XP,更新版 Windows 未測 首先當然就是編輯 C:\WINDOWS\system32\CONFIG.NT 加入這行 device=%SystemRoot%\system32\ansi.sys 不用重開機,稍後就會自動載入此 driver 了 (ansi.sys 電腦裡面本來就有) 然後呢,好像從 Windows 2000 開始,命令提示字元 (Windows 的 DOS 視窗) 就從 以前的 command.com 變成新的 cmd.exe,不過 command.com 還是保留了,其位置在 C:\WINDOWS\system32\command.com 而這 cmd.exe 功能變強了,但不能載入 ansi.sys,所以這裡要改用 command.com。 先在桌面上按右鍵新增捷徑,目標位置就打 command.com 就會建立一個 *.pif 這 pif 就是一個設定檔,按右鍵可以設定一下,總之他會是一個比 cmd.exe 更好的 DOS 模擬器,如果有以前 DOS 時代的 16 位元遊戲或程式不能用 cmd.exe 跑就都可 以用這個來試試。 更多 pif :http://blogs.msdn.com/oldnewthing/archive/2009/11/12/9921112.aspx 然後寫個 c 程式碼,比如叫 aa.c 內容如下 #include <stdio.h> int main() { puts("\x1b[41mred background\x1b[m"); /* \x1b 就是 escape 的 ASCII */ return 0; } 不能用 VC 的 cl.exe 或 gcc 來編譯,原因我不知道,反正需要編譯成 16 位元執行檔 到這個網站: http://www2.ee.ntu.edu.tw/~jye/c/c134/compiler.html 抓裡面的 Turbo C http://www2.ee.ntu.edu.tw/~jye/c/tc/tc201.exe 解壓縮後,執行剛建立的 pif,跳到 C:\TC201 資料夾 輸入 tc aa.c 就會進入 Turbo C 的整合介面,進入就按 F9 就會編譯、連結出 aa.exe 再按 Alt+F -> Exit 離開,回到 DOS 模擬器再執行 aa 就成功印出紅底白字了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.130.119

03/16 23:06, , 1F
好麻煩 ~"~
03/16 23:06, 1F

03/16 23:11, , 2F
祕技推一下
03/16 23:11, 2F

03/16 23:18, , 3F
TC都跑出來了 orz
03/16 23:18, 3F

03/16 23:34, , 4F
p大太神了,感謝指導,大推 !!
03/16 23:34, 4F

03/16 23:49, , 5F
時代的眼淚!
03/16 23:49, 5F

03/17 00:19, , 6F
推:D
03/17 00:19, 6F

03/17 12:55, , 7F
P大好強!
03/17 12:55, 7F
文章代碼(AID): #1DWD53cs (C_and_CPP)
文章代碼(AID): #1DWD53cs (C_and_CPP)