sprintf_s

sprintf_s

计算机编程语言函数
sprintf_s,计算机编程语言函数,其功能是将数据格式化输出到字符串。
  • 中文名:sprintf_s
  • 外文名:
  • 别名:
  • 类型:函数
  • 功能:将数据格式化输出到字符串
  • 头文件:stdio.h

函数简介

sprintf_s的函数简介

函数原型:int sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format [,argument] ...);sprintf_s()是sprintf()的安全版本,通过指定缓冲区长度来避免sprintf()存在的溢出风险相关函数:int sprintf( char *buffer, const char *form

在使用sprintf函数时,一些无关的全局变量发生了改变,这是什么原因导致功能:函数sprintf()用来作格式化的输出。 用法:此函数调用方式为int sprintf(char *string,char *format,arg_list); 说 明:函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组)。

sprintf_s出现未定义的错误gcc里没走这个函数,使用sprintf就行。vc++编译器支持该函数。

程序示例

// crt_sprintf_s.c // This program uses sprintf_s to format various // data and place them in the string named buffer. // #include  int main( void ) { char buffer[200], s[] = "computer", c = 'l'; int i = 35, j; float fp = 1.7320534f; // Format and print various data: j = sprintf_s( buffer, 200, " String: %sn", s ); j += sprintf_s( buffer + j, 200 - j, " Character: %cn", c ); j += sprintf_s( buffer + j, 200 - j, " Integer: %dn", i ); j += sprintf_s( buffer + j, 200 - j, " Real: %fn", fp ); printf_s( "Output:n%sncharacter count = %dn", buffer, j ); } Output: String: computer Character: l Integer: 35 Real: 1.732053

character count = 79

sprintf_s的使用

int sprintf_s(char *restrict buffer, rsize_t bufsz,const char *restrict format, ...);

将数据格式化输出到字符串,sprintf_s()是sprintf()的安全版本,通过指定缓冲区长度来避免sprintf()存在的溢出风险。

sprintf_s原先只有windows的编译器才只支持,并不是C中的标准函数。

在C11标准中加入了对该函数的支持,但是是可选的,并非强制加入。

C11中规定,如果编译器实现了__STDC_LIB_EXT1__ 宏,那么就要支持对该函数的实现。

gcc编译器只是部分的支持C11标准,本人测试在ubuntu的gcc 5.4.0版本中也没有实现__STDC_LIB_EXT1__ 。

gcc中可以用snprintf函数简单替代sprintf_s,但是注意2者在实现上是有一定的区别,不是完全相同。

int snprintf( char *restrict buffer, int bufsz, const char *restrict format, ... );

相关词条

相关搜索

其它词条