首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

linux下c语言gotoxy()实现代码,如何这么神奇

2014-01-22 
linux下c语言gotoxy()实现代码,怎么这么神奇void gotoxy(int x,int y)//Fantasy{printf(%c[%d%df,0x1B,

linux下c语言gotoxy()实现代码,怎么这么神奇

void gotoxy(int x,int y)   //Fantasy  
{  
   printf("%c[%d;%df",0x1B,y,x);  
}  

想不通啊,c语言白学了,这里面是正则表达式吗?怎么会有移动光标效果的?
[解决办法]
只是特定控制台下,这串字会被视为光标命令,同c还是printf关系不大...
[解决办法]
++

引用:
ANSI转义序列,很多类unix的终端,包括linux控制台都解释ANSI转义序列,转义符就是ESC,ASCII码是0x1b,比如
Esc[Line;Columnf
就表示移动光标到(Line,Column)的位置。而你printf打印的字符串正是这个命令,其中0x1B正是 ESC的ASCII码。

[解决办法]
In the following list of ANSI escape sequences, the abbreviation ESC
represents the ASCII escape character 27 (1Bh), which appears at the
beginning of each escape sequence.

ESC[PL;PcH
    Cursor Position: Moves the cursor to the specified position
    (coordinates). If you do not specify a position, the cursor moves to the
    home position--the upper-left corner of the screen (line 0, column
    0). This escape sequence works the same way as the following Cursor
    Position escape sequence.

ESC[PL;Pcf
    Cursor Position: Works the same way as the preceding Cursor Position
    escape sequence.

ESC[PnA
    Cursor Up: Moves the cursor up by the specified number of lines without
    changing columns. If the cursor is already on the top line, ANSI.SYS
    ignores this sequence.

ESC[PnB
    Cursor Down: Moves the cursor down by the specified number of lines
    without changing columns. If the cursor is already on the bottom line,
    ANSI.SYS ignores this sequence.

ESC[PnC
    Cursor Forward: Moves the cursor forward by the specified number of
    columns without changing lines. If the cursor is already in the
    rightmost column, ANSI.SYS ignores this sequence.

ESC[PnD
    Cursor Backward: Moves the cursor back by the specified number of
    columns without changing lines. If the cursor is already in the leftmost
    column, ANSI.SYS ignores this sequence.

ESC[s
    Save Cursor Position: Saves the current cursor position. You can move
    the cursor to the saved cursor position by using the Restore Cursor
    Position sequence.

ESC[u
    Restore Cursor Position: Returns the cursor to the position stored
    by the Save Cursor Position sequence.

ESC[2J
    Erase Display: Clears the screen and moves the cursor to the home
    position (line 0, column 0).

ESC[K
    Erase Line: Clears all characters from the cursor position to the
    end of the line (including the character at the cursor position).

ESC[Ps;...;Psm
    Set Graphics Mode: Calls the graphics functions specified by the
    following values. These specified functions remain active until the next
    occurrence of this escape sequence. Graphics mode changes the colors and


    attributes of text (such as bold and underline) displayed on the
    screen.
……

热点排行