Home C&C++函数库 c++ 语法 程序源码 Linux C库

fgetws

函数   <cwchar>

wchar_t* fgetws (wchar_t* ws, int num, FILE* stream);

从流中获得宽字符串

从流中读取宽字符,并将它们作为C宽字符串存储到ws中,直到(num-1)字符被读取, 或者到达换行符或文件结束符,以最先发生的为准。

换行宽字符会使fgetws停止读取,但该函数认为它是一个有效字符, 并将其包含在复制到ws的字符串中。

在复制到ws的字符之后会自动附加一个终止空字符。
文件中宽字符的外部表示形式是多字节字符: 这些字符的编译就像调用了mbrtowc 一样(使用流的内部mbstate_t对象)。

该函数的行为就像是使用fgetwc从流中读取字符。

这相当于fgets (<cstdio>)的宽字符版本。

☲  参数


ws
指向wchar_t数组的指针,在该数组中填充读取的宽字符串。

num
要复制到ws中的最大字符数(包括终止空字符)。

stream
指向标识输入流的FILE对象的指针。
Stdin可以用作从标准输入读取的参数。
流不区分字符模式(流上的第一次i/o操作确定它是单字符还是宽字符, 请参见fwide)。

☉  返回值



如果成功,则返回ws。
如果在试图读取字符时遇到文件结束符,则设置文件结束指示符(feof)。
如果在读取任何字符之前发生这种情况,则返回的指针为空指针(并且ws的内容保持不变)。
如果发生读错误,则设置错误指示符(ferror)并返回一个空指针(但ws所指向的内容可能已经更改)。

☣  示例



/* fgetws example */
#include <stdio.h>

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

   pFile = fopen ("myfile.txt" , "r");
   if (pFile != NULL)
   {
     if ( fgetws (mystring , 100 , pFile) != NULL )
       fputws ( mystring, stdout );
     fclose (pFile);
   }
   return 0;
}

这个示例读取myfile.txt的第一行或前99个字符(以先到的为准),并在屏幕上打印它们。

🍄  另请参阅



fgets 从流中获取字符串(function )
fputws 向流中写入宽字符串(function )
fgetwc 从流读取宽字符(function )

联系我们 免责声明 关于CandCplus 网站地图