linux下有没有类似gotoxy()的函数

wendymouse 2003-05-06 03:23:07
linux下有没有类似gotoxy()的函数
...全文
102 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ari 2003-05-08
  • 打赏
  • 举报
回复
wendymouse(桶兄)
是在sco上么?

cc -Itam . . . -ltam -lcurses

#include <tam.h>
用户 昵称 2003-05-07
  • 打赏
  • 举报
回复

表 D-1. 终端仿真类型

选择
选项

Console Redirection
(控制台重定向)
具有一个串行端口的系统:
On(开)
Off(关)

Remote Terminal Type
(远程终端类型)
VT100/220
ANSI

Redirection after boot
(引导后重定向)
Enabled(已启用)
Disabled(已禁用)




表 D-2. VT100/220 支持的转义序列

按键
支持的序列
终端仿真

上箭头键
<Esc> [ <Shift>a
VT100/220

下箭头键
<Esc> [ <Shift>b
VT100/220

右箭头键
<Esc> [ <Shift>c
VT100/220

左箭头键
<Esc> [ <Shift>d
VT100/220

F1 键
<Esc> <Shift>op
VT100/220

F2 键
<Esc> <Shift>oq
VT100/220

F3 键
<Esc> <Shift>or
VT100/220

F4 键
<Esc> <Shift>os
VT100/220

F5 键
<Esc> <Shift>ot
VT100

F6 键
<Esc> <Shift>ou
<Esc> [ 1 7 ~
VT100
VT100/220

F7 键
<Esc> <Shift>ov
<Esc> [ 1 8 ~
VT100
VT100/220

F8 键
<Esc> <Shift>ow
<Esc> [ 1 9 ~
VT100
VT100/220

F9 键
<Esc> <Shift>ox
<Esc> [ 2 0 ~
VT100
VT100/220

F10 键
<Esc> <Shift>oy
<Esc> [ 2 1 ~
VT100
VT100/220

F11 键
<Esc> <Shift>oz
<Esc> [ 2 3 ~
VT100
VT100/220

F12 键
<Esc> <Shift>oa
<Esc> [ 2 4 ~
VT100
VT100/220

Home 键
<Esc> [ 1 ~
VT220

End 键
<Esc> [ 4 ~
VT220

Insert 键
<Esc> [ 2 ~
VT220

Delete 键
<Esc> [ 3 ~
VT220

Page Up 键
<Esc> [ 5 ~
VT220

Page Down 键
<Esc> [ 6 ~
VT220

Shift-Tab 键
<Esc> [ <Shift>z
<Esc> [ 0 <Shift>z
VT100
VT220






表 D-3. ANSI 支持的转义序列

按键
支持的序列

上箭头键
<Esc> [ <Shift>a

下箭头键
<Esc> [ <Shift>b

右箭头键
<Esc> [ <Shift>c

左箭头键
<Esc> [ <Shift>d

F1 键
<Esc> <Shift>op

F2 键
<Esc> <Shift>oq

F3 键
<Esc> <Shift>or

F4 键
<Esc> <Shift>os

F5 键
<Esc> <Shift>ot

F6 键
<Esc> <Shift>ou

F7 键
<Esc> <Shift>ov

F8 键
<Esc> <Shift>ow

F9 键
<Esc> <Shift>ox

F10 键
<Esc> <Shift>oy

F11 键
<Esc> <Shift>oz

F12 键
<Esc> <Shift>oa




表 D-4. 其它转义序列

组合键
支持的序列

<Alt><x>
<Alt><x> 被映射至终端上的 <Esc> <Shift> x <Shift> x 按键序列,其中 x 表示小写字母,X 表示大写字母。

<Ctrl><Alt><Del>

(该组合键用于重新引导
系统。)
<Esc> <Shift>r <Esc> r <Esc> <Shift>r


<Ctrl><Shift>i
<Esc> <Ctrl><Shift>i

<Ctrl><Shift>j
<Esc> <Ctrl><Shift>j

<Ctrl><Shift>h
<Esc> <Ctrl><Shift>h

<Ctrl><Shift>m
<Esc> <Ctrl><Shift>m

<Ctrl>2
<Esc> <Ctrl>2



用户 昵称 2003-05-07
  • 打赏
  • 举报
回复
有点错误,我的代码相关性比较强
如果需要gotoxy( x, y )
需要打印esc这个字符,就是27了
printf( "%c", 27 );
后面跟着[
y的数值
;
x....
H

比如需要移动到,第10行,第20列
x=20
y=10
整个字符串是
[10;20H
是27
用户 昵称 2003-05-07
  • 打赏
  • 举报
回复
如果需要在绝大多数终端上都能用,这样就行了

#define _send( x ) printf( "%c", x )
void
MoveTo( int x, int y )
{
_send( ( char )27 );
_send( '[' );
_send( y );
_send( ';' );
_send( x );
_send( 'H' );
}

void
ClearScreen( void )
{
low();
_send( ( char )27 );
_send( "[2J" );
}

void
MovenLeft( int n )
{
_send( ( char )27 );
_send( '[' );
_send( n );
_send( 'D' );
}

void
MovenRight( int n )
{
_send( ( char )27 );
_send( '[' );
_send( n );
_send( 'C' );
}

void
MovenUp( int n )
{
_send( ( char )27 );
_send( '[' );
_send( n );
_send( 'A' );
}

void
MovenDown( int n )
{
_send( ( char )27 );
_send( '[' );
_send( n );
_send( 'B' );
}

void
MoveLeft( void )
{
_send( ( char )27 );
_send( "[D" );
}

void
MoveRight( void )
{
_send( ( char )27 );
_send( "[C" );
}

void
MoveUp( void )
{
_send( ( char )27 );
_send( "[A" );
}

void
MoveDown( void )
{
_send( ( char )27 );
_send( "[B" );
}
wendymouse 2003-05-07
  • 打赏
  • 举报
回复
现在我也尝试应用curses,但是GCC编译报错,没有定义initsrc()和endwin()之类的curses函数。请赐教!
ari 2003-05-06
  • 打赏
  • 举报
回复
move/wmove
============
man move/wmove/curses
warabi 2003-05-06
  • 打赏
  • 举报
回复
termcap库好象能做这个,C的接口。
另,ESC转码显示中,可能也有此类功能。

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧