菜鸟问题,关于字符串输出,十思不得其解

The_CSDN_newcomer 2012-03-19 10:14:04
编程中国C语言版块看到的一个小问题。

#include<stdio.h>
int main(void)
{
//printf("\t \b1\b5\n");
printf("\t");
printf(" ");
printf("\b");
printf("1");
printf("\b");
printf("5");
getchar();
return 0;
}


以上代码在VS2010和DEV C++中都是输出“ 5”

#include<stdio.h>
int main(void)
{
printf("\t \b1\b5\n");
getchar();
return 0;
}



以上代码在VS2010和DEV C++中都是输出“ 51”
不知道为啥结果不同,特来发问。

...全文
152 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuhui00 2012-03-20
  • 打赏
  • 举报
回复
试了下,ubuntu下用gcc编译结果是两者一样,都是5, 看起来应该是跟编译器和操作系统有关
鲲尘千古 2012-03-20
  • 打赏
  • 举报
回复
这个本来就是输出5,既然是gcc那么肯定会用终端吧?逐步注释代码,在终端运行程序,看一看就明白了。
笨蛋糕 2012-03-20
  • 打赏
  • 举报
回复
这是c吧,就应该输出5啊
楼主去看一下转移字符的知识就明白啦
Ever_lover 2012-03-20
  • 打赏
  • 举报
回复
gcc下面是5,楼主不必纠结了,如果真想好好学习,建议看看printf源码怎么实现的也许会得到你想要的答案,说实话我也不怎么懂
izhong 2012-03-19
  • 打赏
  • 举报
回复
这个应该是编译器处理顺序的原因吧
猪头小哥 2012-03-19
  • 打赏
  • 举报
回复
我也看出来了,菜鸟同求吧。
[Quote=引用 3 楼 the_csdn_newcomer 的回复:]

既然ls和lss都很懂,劳烦ls及lss指导一下,还有这个问题貌似不是转义字符的问题,而是同一个字符串,分开多个printf输出和一个printf输出为啥结果不一样。
[/Quote]
The_CSDN_newcomer 2012-03-19
  • 打赏
  • 举报
回复
既然ls和lss都很懂,劳烦ls及lss指导一下,还有这个问题貌似不是转义字符的问题,而是同一个字符串,分开多个printf输出和一个printf输出为啥结果不一样。
Terry_dong 2012-03-19
  • 打赏
  • 举报
回复
哥们!我看看你还是去看看书吧!!我也是初学者者!所以我懂!!
a1415926 2012-03-19
  • 打赏
  • 举报
回复
建议熟悉基础,以上看转义字符

69,371

社区成员

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

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