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, ... );

相關詞條

相關搜索

其它詞條