关于转义字符中的退格符

uranuskevin 2005-10-09 11:42:01
下面这个程序
#include <stdio.h>
main()
{
char yy[] = "\b\tc\baa" ;
printf("%s",yy);
printf("\n");
}
运行结果为
aa c
----------
123456789 [列数]

有无第一个\b 结果差很多
而"asdf" "\basdf" 输出结果是一样的.
这跟后面的制表符有没有关系.
我在c++版发了这个问题,还是不懂.
是我哪里理解出错了吗?
...全文
510 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gabby1985 2005-10-11
  • 打赏
  • 举报
回复
这个和编译器是有关系的~ TC GCC 下都是我们想要的结果,但VC下不是.
VC6 和标准的C实现 也就是ANSI C 有一点点出入的

区别可能在VC对于字符缓存的处理有一些不太一样的地方 也可能是一个小BUG 不知 VC.NET 怎么样
具体的去MSDN 上看看
uranuskevin 2005-10-11
  • 打赏
  • 举报
回复
"\b\tcc\baa" 输出又是正常的
jixingzhong 2005-10-10
  • 打赏
  • 举报
回复
似乎 前面的 \b 被缓冲了, 在后面的输出中发挥了作用 ....
jixingzhong 2005-10-10
  • 打赏
  • 举报
回复
恩 确实存在这样的问题, 可能是对这种后退的处理方式不一样把, 不是很清楚 ...
学习 ~
K 2005-10-09
  • 打赏
  • 举报
回复
\b=退格
\t=横向制表符
bugatti 2005-10-09
  • 打赏
  • 举报
回复
tc20中能解释的通
\b=>到上一列的最后
\tc=>到下个制表的位置输出c,即在这一行的开头输出c,光标处于第二列的位置
\baa=> 光标前移,即位于c的位置,在此输出aa,覆盖c
=>aa
在vc++中想不通阿
bugatti 2005-10-09
  • 打赏
  • 举报
回复
有区别的
我在vc++中显示的跟你的一样
但在tc20里面是aa

70,037

社区成员

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

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