诡异的C语言问题:printf("%12345%*"); 输出什么?????

Laney 2005-07-12 11:07:54
#include <stdio.h>
int main()
{
printf("%12345%*");
return 0;
}
输出什么???
谁能告诉我,为什么输出这样的结果
...全文
1035 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
Laney 2005-07-13
  • 打赏
  • 举报
回复

晕,都说了是
我用的gcc 3.4.2
FreeBSD 5.4
jkjk__ses 2005-07-13
  • 打赏
  • 举报
回复
经检验,输出的是%*,并没有像搂住说的那样输出巨多空格
晨星 2005-07-13
  • 打赏
  • 举报
回复
我的函数的传入参数中有这些格式控制字符!!!这个也不是我能控制的!!
——要打印的字符串中可能出现格式控制符,这个任何人也控制不了,但字符串的打印,就是应该采用上面第二种方式才好,这个是可以控制的。
晨星 2005-07-13
  • 打赏
  • 举报
回复
对于字符串的打印,最好不要这样:
fprintf(pf, strAll);
这样很容易出问题的,最好还是:
fpritnf(pf, "%s", strAll);
flash_sword82 2005-07-13
  • 打赏
  • 举报
回复
呵呵,楼主你有没有试过换个更打的数或者小一点的数会生成什么呢?
jsjjms 2005-07-12
  • 打赏
  • 举报
回复
这种东西乱用也没有意思呀。

楼主难道要达到什么特殊的目的?
whatsouta 2005-07-12
  • 打赏
  • 举报
回复
看来是楼主自己没用对
login__whf 2005-07-12
  • 打赏
  • 举报
回复
mark
jixingzhong 2005-07-12
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <conio.h>

int main()
{
printf("%12345%*");
printf("\nPress any key to exit.\n");
getch();
return 0;
}


输出:%12345%*
Press any key to exit.


原因,没有匹配的格式化输出,

所以按照字符串方式输出!!
晨星 2005-07-12
  • 打赏
  • 举报
回复
唉,实在不想研究为什么,你这是乱用格式控制符,出现任何糟糕的结果,恕俺说句不好听的,都是“活该”。
其实printf乱用可能引发的严重问题还多着呢,建议规规矩矩地用,别乱用,尤其是格式控制符,一方面本身要正确,另一方面跟后面可变参数要一一对应起来。
o小o坤x坤x 2005-07-12
  • 打赏
  • 举报
回复
用以下程序可以看出来的,输出:%*
Press any key to exit.
编译环境是Dev_C++ 5.0 Beta 9 ,大家可以在其他环境里试验一下,很简单的,也没有错误,这里不能帖图,否则,我可以调试的结果给你看看。

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int main()
{
printf("%12345%*");
printf("\nPress any key to exit.\n");
getchar();
exit(0);
return 0;
}
Laney 2005-07-12
  • 打赏
  • 举报
回复
大家有空试试,然后告诉我为什么
Laney 2005-07-12
  • 打赏
  • 举报
回复
又想起来以前老师说的话,C语言的任何一个点,不注意就会又严重的错误产生!!!!
Laney 2005-07-12
  • 打赏
  • 举报
回复
这个小小的东西导致我的程序巨多的错误!!!!!!!!!!
这个打印出来是n多的空格,我在一个记日志的程序中用snprintf拼送过来的字符串,然后用写文件。
结果送过来的字符串中有“%12345%*”,结果就导致我的文件有巨多的空格追了上去。
导致产生了一天20G的日志有效内容才2G,其他都是空格!!!!!!!!
Willpro 2005-07-12
  • 打赏
  • 举报
回复
读取printf的格式控制串同定义好的格式匹配,发现没有,继续,一直到找到匹配的,于是%12345%*");等同于%%,%%以后的字符都是照样打印,没啥好说的
晨星 2005-07-12
  • 打赏
  • 举报
回复
在printf的格式控制串中,“%”和“*”都是保留的格式控制符,你这样写是干什么呢?
晨星 2005-07-12
  • 打赏
  • 举报
回复
你为什么要做这么个试验啊?
晨星 2005-07-12
  • 打赏
  • 举报
回复
哦。
力哥 2005-07-12
  • 打赏
  • 举报
回复
中国项目服务在线:http://www.cpsol.net/
大家有空来看看啊!有大量的项目外包,合作,招商的信息的哦。
elevenE 2005-07-12
  • 打赏
  • 举报
回复
%* //VC7.1
%12345%* //TC

两种结果上面都有解释
不知楼主用的什么工具。。
加载更多回复(5)

69,373

社区成员

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

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