C语言格式化输出字符串的问题

freshui 2008-06-03 04:34:06
我想将打印字符串都输出在一行上, 而不是滚屏显示用的方法是:

fprintf(stdout, "\b\r message to be printed..");

这个方法有个问题, 就是返回行首的时候不清除以前打印的信息, 而是直接在上面覆盖
如果我再来一句:
fprintf(stdout, "\b\r next message!");
结果就成了

next message! printed..

没有把以前的数据给清掉.


不知道各位有没有这样操作过, 你们是怎么做的? 才能正确的在一行显示信息?
...全文
549 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiantongyuan 2008-06-03
  • 打赏
  • 举报
回复
下一次输出的时候调一下clrscr(),清楚一下屏幕内容
XSign 2008-06-03
  • 打赏
  • 举报
回复

#include <stdio.h>

void main()
{
char buf[100];

sprintf(buf,"\b\rHello Hacksign!");
printf("%s\n",buf);

sprintf(buf,"\b\rSorry");
printf("%s\n",buf);
}

windows下输出正常.
如果你的不覆盖,是不是因为输出到的buf没有清空的原因?
用memset清空一下?
freshui 2008-06-03
  • 打赏
  • 举报
回复
我是一个类型的信息在一行输出, 清屏了所有信息都没有了

我是在windows下跑的, 没有清掉
K行天下 2008-06-03
  • 打赏
  • 举报
回复
为什么不清屏呢?

#include <stdio.h>

int main()
{
fprintf(stdout, "\b\r message to be printed..");
system("cls");
fprintf(stdout, "\b\r next message!");
getch();
return 0;
}
weiyijiji 2008-06-03
  • 打赏
  • 举报
回复
怎么我没有多余输出

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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