请教一下:如何在屏幕上进行吞噬(形象的说法)打印

万俟宇轩 2014-06-12 12:50:48
重新说明一下问题:
在屏幕上打印出来一句话,例如“本次输出为10”。
然后在不清屏的情况(或者栈)下,要怎么样才能打印出“本次输出为23”。等等类似的语句。
要保证这个操作不会影响后续操作。例如后面还可以进行一些其他的操作。。。
看起来就像是数字被吃掉了。然后又生成了一个新的数字。。。是不是…………
新人一个。
不懂求指教。。
...全文
98 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
万俟宇轩 2014-06-12
  • 打赏
  • 举报
回复
栈应该也无法实现这个功能,求大大。。。
xuzhouweihao 2014-06-12
  • 打赏
  • 举报
回复
引用 3 楼 adlay 的回复:
前面加 \r 即可, 它 可以重新覆盖本行内容而不换行

int main()
{
	for(int i = 0; i < 10; ++i)
	{
		printf("\r本次输出为 %d    ", i);
		Sleep(1000);
	}

	return 0;
}
补充下,需要加上
fflush(stdout);
xuzhouweihao 2014-06-12
  • 打赏
  • 举报
回复
引用 3 楼 adlay 的回复:
前面加 \r 即可, 它 可以重新覆盖本行内容而不换行

int main()
{
	for(int i = 0; i < 10; ++i)
	{
		printf("\r本次输出为 %d    ", i);
		Sleep(1000);
	}

	return 0;
}
这个,我复杂化了!
www_adintr_com 2014-06-12
  • 打赏
  • 举报
回复
前面加 \r 即可, 它 可以重新覆盖本行内容而不换行

int main()
{
	for(int i = 0; i < 10; ++i)
	{
		printf("\r本次输出为 %d    ", i);
		Sleep(1000);
	}

	return 0;
}
xuzhouweihao 2014-06-12
  • 打赏
  • 举报
回复
linux下可以借用\033[s \033[u 来控制光标。 \033[s 表示保存光标位置。 \033[u 表示恢复光标位置。 下面是个小的实验函数
#include <stdio.h>

int main()
{
	int i=0;

	for(i=0; (i<5) && printf("\033[u"); i++){
		printf("\033[s");
		printf("本次输出为%d",i);
		fflush(stdout);
		sleep(1);
	}
	printf("\n");

	return 0;
}
其他的光标移动: * up : \033[nA * down : \033[nB * right: \033[nC * left : \033[nD

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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