C语言问题sprintf参数问题
sprintf((char*)s,d)和sprintf(s,"%s",d);有啥区别呢,小白求解...
sprintf((char * )s,d)和sprintf(s,"%s",d);有啥区别呢,小白求解
展开
1个回答
展开全部
// crt_sprintf.c
// compile with: /W3
// This program uses sprintf to format various
//data and place them in the string named buffer.
// 程序使用sprintf 将各种数据格式化后置于字符数组buffer中
#include <stdio.h>
int main( void )
{
char buffer[200], s[] = "computer", c = 'l';
int i = 35, j;
float fp = 1.7320534f;
// 格式化并打印各种数据到buffer
j = sprintf( buffer, " String: %s\n", s ); // C4996
j += sprintf( buffer + j, " Character: %c\n", c ); // C4996
j += sprintf( buffer + j, " Integer: %d\n", i ); // C4996
j += sprintf( buffer + j, " Real: %f\n", fp );// C4996
printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
}
Output:
String: computer
Character: l
Integer: 35
Real: 1.732053
character count = 79
看懂这里你就懂了。
sprintf((char * )s,d)按照你的意思,这个用法是错误的。sprintf(s,"%s",d)中的d是可选参数但是中间的格式化字符串是不可去掉的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询