读书人

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

发布时间: 2012-03-23 12:06:21 作者: rapoo

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
而且你的自我链接可能会有一些问题的

读书人网 >C语言

热点推荐