snprintf ()- 將格式化資料列印至緩衝區
格式
#include <stdio.h>
int snprintf(char *buffer, size_t n, const char *format-string,
argument-list);語言層次
ANSI
安全執行緒
是
區分語言環境
此函數的行為可能受到現行語言環境的 LC_CTYPE 及 LC_NUMERIC 種類的影響。 如果在編譯指令上指定 LOCALETYPE (*LOCALEUCS2) 或 LOCALETYPE (*LOCALEUTF) ,則現行語言環境的 LC_UNI_CTYPE 種類也可能影響行為。 如需相關資訊,請參閱 瞭解 CCSID 及語言環境。
說明
snprintf() 函數會將一系列字元和值格式化並儲存在陣列 緩衝區中。 任何 argument-list 都會根據 format-string中的對應格式規格進行轉換及輸出。 snprintf() 函數與 sprintf() 函數相同,並加上 n 引數,指出要寫入 緩衝區的字元數上限 (包括結尾空值字元)。
format-string 由一般字元組成,其格式及函數與 printf() 函數的格式字串相同。
回覆值
snprintf() 函數會傳回在陣列中寫入的位元組數,不計算結尾空值字元。
範例
此範例使用 snprintf() 來格式化及列印各種資料。
#include <stdio.h>
char buffer[200];
int i, j;
double fp;
char *s = "baltimore";
char c;
int main(void)
{
c = 'l';
i = 35;
fp = 1.7320508;
/* Format and print various data */
j = snprintf(buffer, 6, "%s\n", s);
j += snprintf(buffer+j, 6, "%c\n", c);
j += snprintf(buffer+j, 6, "%d\n", i);
j += snprintf(buffer+j, 6, "%f\n", fp);
printf("string:\n%s\ncharacter count = %d\n", buffer, j);
}
/********************* Output should be similar to: *************
string:
baltil
35
1.732
character count = 15 */