函式
<cwchar>

putwc

wint_t putwc (wchar_t wc, FILE* stream);
將寬字元寫入流
將寬字元 wc 寫入 stream 並推進位置指示符。

由於外部檔案中的寬字元由多位元組字元表示,該函式可能需要向檔案寫入多個位元組,如同呼叫 wcrtomb 使用 stream 的內部 mbstate_t 物件轉換 wc 一樣。

如果寬字元無法使用多位元組編碼表示,則該函式返回 WEOF 並設定EILSEQ設定為 errno 的值。

如果發生寫入錯誤,該函式返回 WEOF 並設定流的 錯誤指示符(參見 ferror)。

putwcfputwc 等效,不同之處在於putwc在某些庫中可能實現為宏。請參閱 putwchar,這是一個直接寫入 stdout 的類似函式。

這是 putc (位於 <cstdio>)的 寬字元 等效函式。

引數

wc
要寫入的寬字元。
stream
指向一個 FILE 物件的指標,該物件標識一個輸出流。
該流不應有任何朝向,或應是寬字元朝向的(對流的第一個 I/O 操作決定了它是位元組朝向還是寬字元朝向,請參閱 fwide)。

返回值

成功時,返回寫入的字元(wc 被提升為 wint_t 型別的值)。
返回型別為 wint_t,以容納特殊值 WEOF,該值表示失敗
如果寬字元無法被解釋為有效的多位元組字元,函式將返回 WEOF 並將 errno 設定為EILSEQ.
如果發生寫入錯誤,函式也會返回 WEOF 並設定錯誤指示符 (ferror)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* fputwc example */
#include <stdio.h>

int main ()
{
  FILE * pFile;
  wchar_t wc;

  pFile = fopen ("example.txt","w");
  if (pFile!=NULL) {

    for (wc = L'A' ; wc <= L'Z' ; ++wc)
      putwc ( wc , pFile );

    fclose (pFile);
  }
  return 0;
}

另見