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


C語言 fwprintf用法及代碼示例


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

用法:

int fwprintf (FILE* stream, const wchar_t* format, ...);
將格式化的數據寫入流
寫入由C指向的C寬字符串格式。如果格式包括格式說明符(以開頭的子序列%),後麵的其他參數格式格式化並插入結果字符串中,以替換其各自的說明符。

之後格式參數,該函數至少期望與以下參數指定的數量一樣多的附加參數格式

文件中寬字符的外部表示是多字節字符:這些字符的獲取就像wcrtomb被稱為轉換每個寬字符(使用的內部mbstate_t目的)。

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

參數

stream
指向一個指針FILE標識輸出流的對象。
信息流尚未定向,或者wide-oriented(流上的第一個I /O操作確定它是否是字節-或者寬的-麵向,請參閱fwide)。
format
包含格式字符串的C寬字符串,其格式與格式printf但字符較寬(請參見printf有關詳細信息)。
請注意,所有格式說明符的含義均與中的相同。printf;所以,%lc應該用來寫寬字符(而不是%c), 也%ls應該用於寬字符串(而不是%s)。
... (additional arguments)
取決於格式字符串,函數可能需要一係列附加參數,每個參數都包含一個用於替換a的值格式說明符在裏麵格式字符串(或指向存儲位置的指針,用於n)。
這些參數至少應與格式說明符。該函數將忽略其他參數。

返回值

成功後,將返回寫入的字符總數。

如果發生寫入錯誤,則錯誤指示(ferror)設置,並返回負數。

如果在寫入寬字符時發生多字節字符編碼錯誤,errno被設定為EILSEQ並返回負數。

示例

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

int main ()
{
   FILE * pFile;
   int n;
   wchar_t name [100];

   pFile = fopen ("myfile.txt","w");
   for (n=0 ; n<3 ; n++)
   {
     fwprintf (stdout, L"please, enter a name: ");
     fgetws (name, 100, stdin);
     fwprintf (pFile, L"Name %d: %s",n,name);
   }
   fclose (pFile);

   return 0;
}


本示例提示用戶輸入3次名稱,然後將其寫入myfile.txt每行以固定的長度(共19個字符+換行符)組成。
使用了兩種格式標簽:
%d:有符號十進製整數
%-10.10s:左對齊(-),至少十個字符(10),最多十個字符(.10), 細繩 (s)。
假設我們已經進入JohnJean-FrancoisYoko作為3個名字,myfile.txt將包含:

Name 1: John
Name 2: Jean-Franc
Name 3: Yoko

有關格式化的更多示例,請參見printf

相關用法


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