社区
C语言
帖子详情
求助:文本模式下,怎样实现把光标移动到上一行?
hqx8211
2006-06-16 03:53:55
ucLinux下做一个shell,使用read 从键盘读取字符。先获取终端窗口大小,当读取的字符超过 ws_col (窗口一行能显示的最多字符数)时程序输出一个 '\n' 。 读取到 backspace 时输出退格->空格->再退格。
问题:输出'\n'换行后,backspace无法删除上一行的字符了,请问怎么把光标移动到上一行?(文本形式,没有图形化库的,所有只要用到curses的都不行)
...全文
796
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 指定光标的位置就可以了。
哈尔滨工程大学第十四届程序设计竞赛(同步赛) 部分题解
A 我们输出想输出\ 或者 " 时前面需要加一个\ 也就是转意字符 #include<iostream> #include<cstring> #include<string> #include<algorithm> #include<cmath> using namespace std; int main() { cout<...
哈尔滨工程大学第十四届程序设计竞赛(同步赛)H,N题题解
哈尔滨工程大学第十四届程序设计竞赛(同步赛)H,N题题解 H题 小蚂蚁过马路 链接:https://ac.nowcoder.com/acm/contest/642/H 来源:牛客网 题目描述 共 有 n(1<=n<=1e15) 只 小 蚂 蚁 准 备 从 城 市 1 穿 梭 到 城 市 K(1<=K<=1e5) ,路线是从城市 1 出发,到城市 2,再到城市 3…最后到城市...
ICPC 山东省省赛刷题 第十七届哈尔滨工程大学ACM程序设计竞赛 牛客 MGLF题
准备省赛。 刚打完天梯赛第二天就开始干ACM的题,这些题质量不错,一小时做出三道题,团队4道。 简单题还是可以在很短的时间A出来,问题在于中档题那块,稍微偏难一点的、涉及更加复杂的模型的题,就很难下手了,先把做出来的三道题简单写一下。 牛客重现赛网址:https://ac.nowcoder.com/acm/contest/33486 M题:Tadokoro-Tono-Toe 题意:输入n,代表n×n的棋盘,三子棋赢的规则是,横竖斜三个字就赢了,问他可以赢吗? 分析:当然,只要n>3都有赢得策略。简单判
牛客网 哈尔滨工程大学ACM预热赛 ABCEH题解
A diagrams 题目描述 小虎刚刚上了幼儿园,老师让他做一个家庭作业:首先画3个格子,第二行有2个格子,第三行有1个格子。每行的格子从左到右可以放棋子,但要求除第
一行
外,每行放的棋子数不能超过上
一行
的棋子。玩了一会儿,小虎问大哥大虎:这个作业有很多种摆放法,我想都找到,但我不知道有多少中方案,你能帮助我么? 大虎是学校信息学集训队的,立刻想到用计算机来解决这个问题,并很快有了解答...
哈尔滨工程大学ACM预热赛
https://ac.nowcoder.com/acm/contest/554#question A #include <bits/stdc++.h> using namespace std; int N; long long dp[110][110]; int main() { scanf("%d", &N); m...
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章