C语言sprintf(c语言sprintf报错)

http://www.itjxue.com  2023-01-27 18:08  来源:未知  点击次数: 

用简单的描述告诉我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"

这样可以么?

(责任编辑:IT教学网)

更多

推荐其它软件文章