首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

sprintf为什么不能正确显示解决办法

2012-03-23 
sprintf为什么不能正确显示C/C++ code#include stdlib.h#include stdio.hvoid main() {char f[32]IB

sprintf为什么不能正确显示

C/C++ code
#include <stdlib.h>#include <stdio.h>void main() {    char f[32]="IBM";    printf("%s\n", f);    sprintf(f, "a%s", f);    printf("%s\n", f);    sprintf(f, "%sde", f);    printf("%s\n", f);    return;} 

三次输出分别为: IBM, aaaa和aaaade,这是怎么回事啊?第一次做完sprintf后,就不是正确的结果,第二次倒是在错的基础上对了。以前都没注意到这个问题,求解答,谢谢!

[解决办法]
你把f往f里sprintf,当然会出现这样的问题。
之所以会出现第一次、第二次的情况不一样,也是因为执行的顺序不一样。你把第一次改为

C/C++ code
sprintf(f, "%sa", f);
[解决办法]
查msdn,看使用sprintf()函数的注意事项。
[解决办法]
C/C++ code
#include <stdlib.h>#include <stdio.h>void main() {    char f[32]="IBM";    char *d = "IBM";    printf("%s\n", f);    sprintf(f, "a%s", d);    printf("%s\n", f);    sprintf(f, "%sde", d);    printf("%s\n", f);    return;} //不要用数组  用指针
[解决办法]
http://blog.chinaunix.net/space.php?uid=20745340&do=blog&id=1878730
而且你的自我链接可能会有一些问题的

热点排行