关于C语言的问题

#include<stdio.h>voidmain(){charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;printf("a%cb... #include <stdio.h>

void main()

{ char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;

printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);

printf("\t\b%c %c\n",c4,c5);

}

书上说Turbo C的运行效果如下所示,
aa bb cc abc
AN

\t是转义字符,功能是跳到下一个制表位置,一个制表区占8个字符,所以光标定位到第九个字符位置上,然后打印出cc,又一个\t,又跳到下一个制表位置,即跳到第17个字符位置处,然后打印abc,\n作用是换行,第二个 printf("\t\b%c %c\n",c4,c5);\t执行后,光标定位到第九个字符位置,\b,退一个字符格,光标定位到第八个字符位置上,然后打印A N(即,c4,c5的值),最后执行\n,换行,结果光标在第三行上。
VC++6.0运行结果:
aa bb cc abc
AN
但是现在如果你用viusal c++6.0软件运行效果和这个就不一样了,区别在第二个printf语句中的\t\b这两个转义字符输出的效果,为什么?
展开
 我来答
TIABPH
2010-03-23 · TA获得超过490个赞
知道小有建树答主
回答量:265
采纳率:0%
帮助的人:211万
展开全部
有的编译器把\t当作一个字符来处理,再\b就回到一行刚开始了,就是第二种情况,有的编译器把\t当作若干个空格来处理,就是第一种情况了
土豆爸爸01
2010-03-23 · TA获得超过254个赞
知道答主
回答量:118
采纳率:0%
帮助的人:51.8万
展开全部
在VC++中一样的,就是在第二个printf();里,去掉"\b"就行了。
#include <stdio.h>

void main()

{ char c1='a',c2='b',c3='c',c4='\101',c5='\116';

printf("a%c b%c\tc%c\tabc\n",c1,c2,c3);

printf("\t%c %c\n",c4,c5);//去掉后就和结果一样了

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你的橙子ecc2c
2010-03-23
知道答主
回答量:32
采纳率:0%
帮助的人:26.1万
展开全部
因为\t在VC++6.0中是把贯标移动到下一个制表位置而\b是将光标移到到下一行的制表位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1b6d8c44d8
2010-03-23
知道答主
回答量:44
采纳率:0%
帮助的人:21.3万
展开全部
Turbo C 和visual C++6.0的编译环境不一样,它的字符占的字节不同!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式