当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。