C语言sprintf(c语言sprintf报错)
用简单的描述告诉我C语言 sprintf函数是什么意思。
sprint的语法和printf很像,printf是讲结果送到屏幕,sprintf是将结果送到字符串。与printf相比,sprintf多了一个需要传送到的字符串的变量的名称。
举一个例子如下:
#includestdio.h
main()?{
char?strA[20];
printf("This?is?a?string.\n");
sprintf(strA,"This?is?a?string.\n");
printf("%s",strA);
}
执行效果如下:
C语言问题sprintf参数问题
//?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是可选参数但是中间的格式化字符串是不可去掉的。
c语言中的sprintf函数?
%3d :就是输出时右对齐,如果数字长度小于3,则左边用空格填充
%6d :就是输出时右对齐,如果数字长度小于6,则左边用空格填充
int a=20984,b=48090;
sprintf(str,"%3d%6d",a,b);
由于a的长度为5,所以不用空格了,而b的长度为5,但设定的对齐长度为6,所以左为用空格填充一位
故输出:20984 48090
C语言sprintf问题
sprintf指的是字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。
然后看%.3e就是表示以指数形式输出浮点数,其中.3表示输出三位小数
所以这句话的意思就是把tem2的值以指数形式转换成字符串,并保存到dg中,并且字符串中有三位小数。
C语言,sprintf函数
通常是用来按照一定的格式,给字符窜赋值的,
像char buf[100] = {0};
char s1[10] = "hello world";
char s2[10] = "Tom";
sprintf(buf,"zifuchuan is %s,he int %s",,s1,s2);
printf("buf = [%s]",buf);//输出是,也就是buf变成"zifuchuan is helloworld ,he int Tom"
同样适合一些 int 类型,
int int1= 10
像sprintf(buf,"%s,%s,%d",s1,s2,int1);
这样得出的字符串是"hellowolrd Tom 10"
这样可以么?