社区
C语言
帖子详情
求助:文本模式下,怎样实现把光标移动到上一行?
hqx8211
2006-06-16 03:53:55
ucLinux下做一个shell,使用read 从键盘读取字符。先获取终端窗口大小,当读取的字符超过 ws_col (窗口一行能显示的最多字符数)时程序输出一个 '\n' 。 读取到 backspace 时输出退格->空格->再退格。
问题:输出'\n'换行后,backspace无法删除上一行的字符了,请问怎么把光标移动到上一行?(文本形式,没有图形化库的,所有只要用到curses的都不行)
...全文
689
5
打赏
收藏
求助:文本模式下,怎样实现把光标移动到上一行?
ucLinux下做一个shell,使用read 从键盘读取字符。先获取终端窗口大小,当读取的字符超过 ws_col (窗口一行能显示的最多字符数)时程序输出一个 '\n' 。 读取到 backspace 时输出退格->空格->再退格。 问题:输出'\n'换行后,backspace无法删除上一行的字符了,请问怎么把光标移动到上一行?(文本形式,没有图形化库的,所有只要用到curses的都不行)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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 指定光标的位置就可以了。
Vim用户手册中文版72.pdf
03.3
移动
到指定的字符上 03.4 以匹配一个括号为目的的
移动
03.5
移动
到指定行 03.6 告诉你当前的位置 03.7 滚屏 03.8 简单搜索 03.9 简单的搜索
模式
03.10 使用标记 第04章 小幅改动 04.1 操作符命令和位移 04.2 ...
vim user manual ---vim用户手册
j03.5j 将
光标
移动
到指定的行上 j03.6j 告诉你当前位置 j03.7j 滚屏 j03.8j 简单的搜索 j03.9j 简单的
模式
搜索 j03.10j 使用标记 jusr 04.txtj 小幅改动 j04.1j 操作符命令和位移 j04.2j 改变
文本
j04.3j 重复改动 j...
C语言俄罗斯方块
课程特点: 1、知识点讲解细致入微 2、代码
一行
一行
带大家写,写
一行
讲
一行
。绝不会拿写好的代码讲解。 3、保证带大家写出一个完整的有价值的小项目 课时目录: 1.俄罗斯项目介绍 2.设置
光标
位置 3.游戏界面...
Ubuntu权威指南(2/2)
6.5.3
移动
文本
行 142 6.5.4 删除
文本
行 142 6.6 检索与替换 142 6.6.1 检索字符串 142 6.6.2
模式
检索 143 6.6.3 替换字符串 144 6.7 编辑多个文件 145 6.7.1 编辑多个文件 145 6.7.2 合并文件与合并
文本
行 145 6.8...
Ubuntu权威指南(1/2)
6.5.3
移动
文本
行 142 6.5.4 删除
文本
行 142 6.6 检索与替换 142 6.6.1 检索字符串 142 6.6.2
模式
检索 143 6.6.3 替换字符串 144 6.7 编辑多个文件 145 6.7.1 编辑多个文件 145 6.7.2 合并文件与合并
文本
行 145 6.8...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章