社区
C语言
帖子详情
求助:文本模式下,怎样实现把光标移动到上一行?
hqx8211
2006-06-16 03:53:55
ucLinux下做一个shell,使用read 从键盘读取字符。先获取终端窗口大小,当读取的字符超过 ws_col (窗口一行能显示的最多字符数)时程序输出一个 '\n' 。 读取到 backspace 时输出退格->空格->再退格。
问题:输出'\n'换行后,backspace无法删除上一行的字符了,请问怎么把光标移动到上一行?(文本形式,没有图形化库的,所有只要用到curses的都不行)
...全文
727
5
打赏
收藏
求助:文本模式下,怎样实现把光标移动到上一行?
ucLinux下做一个shell,使用read 从键盘读取字符。先获取终端窗口大小,当读取的字符超过 ws_col (窗口一行能显示的最多字符数)时程序输出一个 '\n' 。 读取到 backspace 时输出退格->空格->再退格。 问题:输出'\n'换行后,backspace无法删除上一行的字符了,请问怎么把光标移动到上一行?(文本形式,没有图形化库的,所有只要用到curses的都不行)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hqx8211
2006-06-19
打赏
举报
回复
楼上的兄弟,多谢先。
但是我想你没看清楚我的要求,操作系统要求是ucLinux,是没有conio.h的。这个应该是dos和Windows下的吧。
jixingzhong
2006-06-19
打赏
举报
回复
说明一下,
上面的 列坐标x, 就是 光标所在的列 ,一般也可以说是 横坐标 ...
y 是纵坐标,注意原点是屏幕的左上角 ...
jixingzhong
2006-06-19
打赏
举报
回复
#include<conio.h>
#include<stdio.h>
int main()
{
int x=0, y=0;
x += printf("123");
y += printf("\n");
x=0; //换行后,列坐标从0从新开始计算
x += printf("456");
y += printf("\n");
x=0; //换行后,列坐标从0从新开始计算
x += printf("789");
getch(); //暂停
gotoxy(x+1, y); //由于输出字符后光标自动后退一个位置,所以定位为(x+1, y)
getch(); //暂停,退到上一行 ...
return 0;
}
jixingzhong
2006-06-19
打赏
举报
回复
函数名: gotoxy
功 能: 在文本窗口中设置光标
用 法: void gotoxy(int x, int y);
程序例:
#include <conio.h>
int main(void)
{
clrscr();
gotoxy(35, 12);
cprintf("Hello world");
getch();
return 0;
}
输出的字符数也是可以被统计的,
那么其实是可以做到精确定位:
统计当前行的字符数目,也就是光标的列 c
换行符号的数目也是可以统计的,就是 光标的行 r,
退到上面的一行就是 行减去1 , 列不变 ....
jixingzhong
2006-06-19
打赏
举报
回复
用定位吧 ...
由于你的 \n 都是单独输出的,
那么可以对 \n 进行计数,
需要后退到上一行的时候,
用 gotoxy 指定光标的位置就可以了。
vimusermanual_vim_
-
移动
光标
:在命令
模式
下,掌握h、j、k、l等键来
移动
光标
,以及其他快捷方式如w、b、e等。 **2. 编辑与删除** - 插入
文本
:进入插入
模式
后,可以插入
文本
。离开插入
模式
回到命令
模式
,按`Esc`键。 - 删除字符:...
Vim.pdf關於VIM的使用教程
- `o`、`O`分别在当前行下或上新开
一行
。 **3.3 删除指令** - `x`、`X`分别删除
光标
后的字符或
光标
前的字符。 - `dd`删除当前行。 **3.4 取代及恢复** - `r`替换
光标
所在字符,`R`进入取代
模式
。 - `u`撤销上一次...
大家来学 Vim.pdf
- 常态
模式
(Normal mode):这是Vim的默认
模式
,用户可以使用键盘上的各种按键进行
光标
移动
、
文本
编辑和执行命令。 - 插入
模式
(Insert mode):在这个
模式
下,用户可以输入
文本
。 - 反白
模式
(Visual mode):允许...
vim user manual ---vim用户手册
- **将
光标
移动
到指定的行上**: 使用数字加上`G`键快速定位行。 - **告诉你当前位置**: 显示当前行号和列号。 - **滚屏**: 使用`Ctrl+u`和`Ctrl+d`键向上或向下滚动。 - **简单的搜索**: 使用`/`键搜索
文本
。 - **...
VIM for (PHP) Programmers
- `<CR>`:跳转到下
一行
的第一个非空格字符。 - `-`:跳转到上
一行
的第一个非空格字符。 ##### 五、标记(Marks) - **标记设定与跳转**: - `m<letter>`:设置标记为字母`<letter>`。 - `‘<letter>`:跳转到...
C语言
70,020
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章