社区
C语言
帖子详情
诡异的C语言问题:printf("%12345%*"); 输出什么?????
Laney
2005-07-12 11:07:54
#include <stdio.h>
int main()
{
printf("%12345%*");
return 0;
}
输出什么???
谁能告诉我,为什么输出这样的结果
...全文
1035
25
打赏
收藏
诡异的C语言问题:printf("%12345%*"); 输出什么?????
#include int main() { printf("%12345%*"); return 0; } 输出什么??? 谁能告诉我,为什么输出这样的结果
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
c语言
种%*的*作用
%*的话,分成scanf和
printf
两种情况 如果在scanf中使用,则添加了*的部分会被忽略,不会被参数获取。 就像这样: int a; char b[10]; scanf("%d%s",&a,b);
printf
("%d %s",a,b); 如果我的输入是:10 黄瓜 那么...
C语言
printf
中%s、%*s、%*.*s的作用以及实现一个进度条
在
c语言
printf
的解析格式里,如果遇到“个字符,所以又在左边用空格进行了补齐。”则取参数对应位作为宽度,如果是“第二个*代表最多
输出
多少个字符。所以这段参数的含义是至少
输出
。的原因,所以我们只能
输出
。个则...
【
C语言
】的%*d、%.*s等详解:
正题1:scanf(1) %*d 被枪毙了:(2) 【%.*d 】的队友被枪毙了:2.正题2:
printf
就不讲了,前面的【前言】似乎讲得很明白了吧。 0.前言【精简版】: 其实网上也有很多关于这方面的解释,但是总会让新手甚至小老手...
c语言
字母意义,%C是什么意思?
c语言
中?和:是什么意思
和:是什么意思相关
问题
:匿名网友:%c单个字符
输出
的意思。%s是
输出
字符串。%d是
输出
整型。%f是
输出
整型。这是在scanf、
printf
这样的函数中,将参数类型与输入/
输出
句子中的相应位置相对应所使用的转义标志符。其中...
C语言
printf
()
输出
方式用法总结
常用的
输出
方式: 字符串 char str[] = "d 0 b"; //不包括空字符共5字节
printf
("**%s**\n",str); //遇空字符结束
printf
("**%7s**\n",str); //靠右
printf
("**%-7s**\n",str); //靠左
输出
结果: **d 0 b** ** d...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章