社区
C语言
帖子详情
求助:文本模式下,怎样实现把光标移动到上一行?
hqx8211
2006-06-16 03:53:55
ucLinux下做一个shell,使用read 从键盘读取字符。先获取终端窗口大小,当读取的字符超过 ws_col (窗口一行能显示的最多字符数)时程序输出一个 '\n' 。 读取到 backspace 时输出退格->空格->再退格。
问题:输出'\n'换行后,backspace无法删除上一行的字符了,请问怎么把光标移动到上一行?(文本形式,没有图形化库的,所有只要用到curses的都不行)
...全文
748
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 指定光标的位置就可以了。
vimusermanual_vim_
user manual of vim version 8
Vim.pdf關於VIM的使用教程
這是一本關於VIM的使用教程,希望可以給大家一些幫助
VIm帮助手册(中文版)
VIm帮助手册,中文版,程序员的宝典,好用的编辑器
大家来学 Vim.pdf
大家来学 Vim.pdf
vim user manual ---vim用户手册
起步 jusr 01.txtj 关于本手册 jusr 02.txtj Vim第一步 jusr 03.txtj
移动
jusr 04.txtj 小幅改动 jusr 05.txtj 定制你的Vim jusr 06.txtj 使用语法高亮 jusr 07.txtj 编辑多个文件 jusr 08.txtj 分隔窗口 jusr 09.txtj 使用GUI jusr 10.txtj 大刀阔斧 jusr 11.txtj 灾难恢复 jusr 12.txtj 奇技淫巧 高效编辑 jusr 20.txtj 加速冒号命令 jusr 21.txtj 进退之间 jusr 22.txtj 查找要编辑的文件 jusr 23.txtj 非
文本
文件 jusr 24.txtj 快速键入 jusr 25.txtj 编辑格式化
文本
jusr 26.txtj 重复重复, 再重复 jusr 27.txtj 搜索命令和
模式
jusr 28.txtj 折行 8 9 第00章目录 jusr 29.txtj 之于程序 jusr 30.txtj 程序的编辑 jusr 31.txtj 探索GUI 打造Vim jusr 40.txtj 定义新命令 jusr 41.txtj Vim脚本 jusr 42.txtj 增加新菜单 jusr 43.txtj 文件类型 jusr 44.txtj 自定义语法高亮文件 jusr 45.txtj 选择语言 运转Vim jusr 90.txtj 安装Vim 可以在下面的地址中找到以单个文件组织的可打印版的HTML或PDF格 式用户手册: http://vimdoc.sf.net 起步 请从头至尾细读本章, 本章讲述Vim的基本命令. jusr 01.txtj 关于本手册 j01.1j 两套帮助 j01.2j 关于安装 j01.3j 使用Vim教程 j01.4j 版权 jusr 02.txtj Vim第一步 j02.1j 首次运行Vim j02.2j 插入
文本
9 10 第00章目录 j02.3j
移动
光标
j02.4j 删除字符 j02.5j 撤消与重做 j02.6j 其它编辑命令 j02.7j 退出 j02.8j
求助
jusr 03.txtj
移动
j03.1j 以Word为单位的
光标
移动
j03.2j 将
光标
移到行首或行尾 j03.3j 将
光标
移动
到指定的字符上 j03.4j 将
光标
移动
到匹配的括号上 j03.5j 将
光标
移动
到指定的行上 j03.6j 告诉你当前位置 j03.7j 滚屏 j03.8j 简单的搜索 j03.9j 简单的
模式
搜索 j03.10j 使用标记 jusr 04.txtj 小幅改动 j04.1j 操作符命令和位移 j04.2j 改变
文本
j04.3j 重复改动 j04.4j Visual
模式
j04.5j
移动
文本
j04.6j 复制
文本
j04.7j 使用剪贴板 j04.8j
文本
对象 j04.9j 替换
模式
j04.10j 结论 jusr 05.txtj 定制你的Vim j05.1j vimrc文件 j05.2j vimrc示例 j05.3j 简单的映射 j05.4j 增加一个plugin j05.5j 增加一个帮助文件 j05.6j 选项设置窗口 j05.7j 常用选项 10 11 第00章目录 jusr 06.txtj 使用语法高亮 j06.1j 打开色彩 j06.2j 没有色彩或色彩错误? j06.3j 不同的颜色 j06.4j 有色或无色 j06.5j 彩色打印 j06.6j 进一步的学习 jusr 07.txtj 编辑多个文件 j07.1j 编辑另一个文件 j07.2j 文件列表 j07.3j 切换到另一文件 j07.4j 备份 j07.5j 在文件间复制粘贴 j07.6j 查看文件 j07.7j 更改文件名 jusr 08.txtj 分隔窗口 j08.1j 分隔一个窗口 j08.2j 为另一个文件分隔出一个窗口 j08.3j 窗口大小 j08.4j 垂直分隔 j08.5j
移动
窗口 j08.6j 针对所有窗口操作的命令 j08.7j 使用vimdiff查看不同 j08.8j 其它 jusr 09.txtj 使用GUI j09.1j GUI的各部分 j09.2j 使用鼠标 j09.3j 剪贴板 j09.4j 选择
模式
jusr 10.txtj 大刀阔斧 j10.1j 命令的记录与回放 j10.2j 替换 11 12 第00章目录 j10.3j 使用作用范围 j10.4j 全局命令 j10.5j 可视块
模式
j10.6j 读写文件的部分内容 j10.7j 格式化
文本
j10.8j 改变大小写 j10.9j 使用外部程序 jusr 11.txtj 灾难恢复 j11.1j 基本方法 j11.2j 交换文件在哪? j11.3j 是不是死机了? j11.4j 进一步的学习 jusr 12.txtj 奇技淫巧 j12.1j 替换一个word j12.2j 将"Last, First"改为"First Last" j12.3j 排序 j12.4j 反转行序 j12.5j 统计字数 j12.6j 查找帮助页1 j12.7j 消除多余空格 j12.8j 查找一个word在何处被引用 高效编辑 此类主题可以独立阅读 jusr 20.txtj 加速冒号命令 j20.1j 命令行编辑 j20.2j 命令行缩写 j20.3j 命令行补齐 j20.4j 命令行历史记录 j20.5j 命令行窗口 1译: 仅对Unix类系统有意义 12 13 第00章目录 jusr 21.txtj 进退之道 j21.1j 挂起与恢复 j21.2j 执行shell命令 j21.3j 记住相关信息: viminfo j21.4j 会话 j21.5j 视图 j21.6j
模式
行 jusr 22.txtj 查找要编辑的文件 j22.1j 文件浏览器 j22.2j 当前目录 j22.3j 查找一个文件 j22.4j 缓冲区列表 jusr 23.txtj 非
文本
文件 j23.1j DOS, Mac 和Unix格式的文件 j23.2j 来自因特网的文件 j23.3j 加密文件 j23.4j 二进制文件 j23.5j 压缩文件 jusr 24.txtj 快速键入 j24.1j 校正 j24.2j 显示匹配字符 j24.3j 自动补全 j24.4j 重复录入 j24.5j 从其它行复制 j24.6j 插入一个寄存器的内容 j24.7j 缩写 j24.8j 键入特殊字符 j24.9j 键入连字符 j24.10j Normal
模式
命令 jusr 25.txtj 编辑格式化
文本
j25.1j 段行 j25.2j
文本
对齐 13 14 第00章目录 j25.3j 缩进和制表符 j25.4j 处理长行 j25.5j 编辑表格 jusr 26.txtj 重复重复, 再重复 j26.1j Visual
模式
的重复 j26.2j 加与减 j26.3j 对多个文件做同样的改动 j26.4j 在一个shell脚本中使用Vim jusr 27.txtj 搜索命令和
模式
j27.1j 忽略大小写 j27.2j 绕回文件头尾 j27.3j 偏移 j27.4j 多次匹配 j27.5j 多选一 j27.6j 字符范围 j27.7j 字符分类 j27.8j 匹配一个断行 j27.9j 例子 jusr 28.txtj 折行 j28.1j 什么是折行? j28.2j 手工折行 j28.3j 使用折行 j28.4j 保存和恢复折行 j28.5j 根据缩进的折行 j28.6j 根据标记的折行 j28.7j 根据语法的折行 j28.8j 根据表达式折行 j28.9j 折叠未有改变的行 j28.10j 使用何种折行方法? jusr 29.txtj 之于程序 j29.1j 使用tags j29.2j 预览窗口 14 15 第00章目录 j29.3j 在程序中
移动
j29.4j 查找全局标识符 j29.5j 查找局部标识符 jusr 30.txtj 程序的编辑 j30.1j 编译 j30.2j C程序的缩进 j30.3j 自动缩进 j30.4j 其它语言的缩进 j30.5j 跳格键与空格 j30.6j 注释的格式化 jusr 31.txtj 探索GUI j31.1j 文件浏览器 j31.2j 确认 j31.3j 菜单命令的快捷键 j31.4j Vim的窗口位置和大小 j31.5j 其它 调节Vim 让Vim如你所愿地工作 jusr 40.txtj 定义新命令 j40.1j 键映射 j40.2j 自定义冒号命令 j40.3j 自动命令 jusr 41.txtj Vim脚本 j41.1j 介绍 j41.2j 变量 j41.3j 表达式 j41.4j 条件语句 j41.5j 执行一个表达式 15 16 第00章目录 j41.6j 使用函数 j41.7j 函数定义 j41.8j 注意事项 j41.9j 定制一个plugin j41.10j 定制一个文件类型相关的plugin j41.11j 定制一个编译相关的plugin jusr 42.txtj 增加新菜单 j42.1j 介绍 j42.2j 菜单操作命令 j42.3j 其它 j42.4j 工具栏和弹出式菜单 jusr 43.txtj 文件类型 j43.1j 文件类型的插件 j43.2j 添加一种文件类型 jusr 44.txtj 自定义语法高亮文件 j44.1j 基本的语法命令 j44.2j 关键字 j44.3j 匹配 j44.4j 区域 j44.5j 嵌套 j44.6j 后续组 j44.7j 其它参数 j44.8j 聚簇 j44.9j 包含另一个语法文件 j44.10j 同步 j44.11j 安装一个语法文件 j44.12j 可移植语法文件的布局要求 jusr 45.txtj 选择语言 j45.1j 用于消息的语言 j45.2j 用于菜单的语言 j45.3j 使用另一种编码方法 j45.4j 编辑另类编码方案的文件 j45.5j 输入 16 17 第00章目录 运转Vim Vimming之前. jusr 90.txtj 安装Vim j90.1j Unix j90.2j MS-Windows j90.3j 升级 j90.4j 常见问题 j90.5j 卸载Vim
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章