當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C語言 swprintf用法及代碼示例


C語言wchar頭文件(wchar.h)中swprintf函數的用法及代碼示例。

用法:

int swprintf (wchar_t* ws, size_t len, const wchar_t* format, ...);
將格式化的數據寫入寬字符串
用以下內容組成的寬字符串與要打印的文本相同格式用於wprintf,而不是將其打印,而是將內容存儲為C寬弦在所指向的緩衝區中ws

如果生成的寬字符串長於len-1字符,其餘字符將被丟棄而不存儲。

內容後麵會自動附加一個終止的空字符。

之後格式參數,該函數至少需要與所需數量一樣多的附加參數格式

這是寬字符等價於snprintf(<cstdio>)。

參數

ws
指向存儲結果C寬字符串的緩衝區的指針。
緩衝區的大小至少應為n寬字符。
len
最多可填寫的寬字符數ws緩衝。
生成的字符串的長度最大為n-1,留出空間來容納其他終止的null寬字符。
size_t是無符號整數類型。
format
包含格式字符串的C寬字符串,其格式與格式printf(參考printf有關詳細信息)。
請注意,所有格式說明符的含義均與中的相同。printf;所以,%lc應該用來寫寬字符(而不是%c), 也%ls應該用於寬字符串(而不是%s)。
... (additional arguments)
取決於格式字符串,函數可能需要一係列附加參數,每個參數都包含一個用於替換a的值格式說明符在裏麵格式字符串(或指向存儲位置的指針,用於n)。
這些參數至少應與格式說明符。該函數將忽略其他參數。

返回值

成功後,將返回寫入的字符總數。此計數不包括自動附加在字符串末尾的其他null-character。
失敗時返回負數,包括何時將結果字符串寫入其中ws會比n字符。

示例

/* swprintf example */
#include <stdio.h>
#include <wchar.h>

int main ()
{
  wchar_t buffer [100];
  int cx;

  cx = swprintf ( buffer, 100, L"The half of %d is %d", 80, 80/2 );

  swprintf ( buffer+cx, 100-cx-1, L", and the half of that is %d.", 80/2/2 );

  fputws ( buffer, stdout );

  return 0;
}


輸出:
The half of 80 is 40, and the half of that is 20.

也可以看看

snprintf
將格式化的輸出寫入大小合適的緩衝區(函數 )
wprintf
將格式化的數據打印到標準輸出(函數 )
swscanf
從字符串中讀取格式化的數據(函數 )

相關用法


注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C swprintf function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。