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


C語言 getwc用法及代碼示例


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

用法:

wint_t getwc (FILE* stream);
從流中獲得寬廣的角色
返回內部當前指向的寬字符位置指示器指定的。然後內部位置指示器前進到下一個寬字符。

由於寬字符由外部文件中的多字節字符表示,因此該函數可能涉及從文件中讀取多個字節,這些字節被解釋為單個字符,就好像mbrtowc被稱為的內部mbstate_t目的。

如果讀取的字節序列不能解釋為有效的多字節字符(或者可用字節太少而不能構成寬字符),則該函數返回WEOF和集EILSEQ作為...的價值errno

如果流在調用時位於文件末尾,則該函數返回WEOF並設置文件結束指示符對於流(feof)。

如果發生讀取錯誤,函數將返回WEOF並設置錯誤指示對於流(ferror)。

getwcfgetwc是等效的,除了getwc在某些庫中可能被實現為宏。看getwchar對於直接從中讀取的類似函數stdin

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

參數

stream
指向一個指針FILE標識輸入流的對象。
信息流尚未定向,或者wide-oriented(流上的第一個I /O操作確定它是否是字節-或者寬的-麵向,請參閱fwide)。

返回值

成功時,返回讀取的字符(提升為type的值wint_t)。
返回類型為wint_t適應特殊價值WEOF,指示失敗:
如果讀取的字節序列不能解釋為有效的寬字符,則該函數返回WEOF和集errnoEILSEQ
如果位置指示器位於文件結束,函數返回WEOF並設置有效指標(feof) 的
如果發生讀取錯誤,該函數還會返回WEOF,但設置了錯誤指示(ferror) 反而。

示例

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

int main ()
{
  FILE * pFile;
  wint_t wc;
  int n = 0;
  pFile=fopen ("myfile.txt","r");
  if (pFile!=NULL)
  {
    do {
      wc = getwc (pFile);
      if (wc == L'$') n++;
    } while (wc != WEOF);
    fclose (pFile);
    wprintf (L"The file contains %d dollar sign characters ($).\n",n);
  }
  return 0;
}


該程序讀取一個名為myfile.txt逐個字符並使用n變量以計算多少美元字符($)文件中是否包含。

相關用法


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