当前位置: C语言 -- 标准库 -- <wchar.h> -- fgetws

fgetws函数


概要:
#include <stdio.h>
#include <wchar.h>
wchar_t *fgetws(wchar_t * restrict s,
      int n, FILE * restrict stream);

描述:

该函数从参数stream指向的流中读取最多(n-1)个宽字符到参数s指向的数组中,最后一个宽字符读入数组后,将向数组写入一个空宽字符。

该函数不会读取换行宽字符后(换行宽字符会被读取。)以及文件末尾后的宽字符。


参数:
wchar_t * restrict s

wchar_t类型指针,读取的宽字符将存储在其指向的数组中。

int n

指定最多可以读取的宽字符数,最多可以读取的宽字符数为(n-1)。

FILE * restrict stream

FILE类型指针,指向输入流。


返回值:

如果调用成功,函数返回s。如果到达文件末尾并且没有读取任何字符到数组中,函数返回空指针,并且数组内容保持不变。如果发生读取错误或者编码错误,函数返回空指针,数组内容是不确定的。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
/*函数fgetws范例*/

#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>

#define LENGTH 100

int main(void)
{
    setlocale(LC_CTYPE, "");

    FILE *pFile;
    wchar_t wStr[LENGTH];
    
    /*打开文件。*/
    pFile = fopen("gch.txt", "r");
    if(!pFile)
    {
        perror("Error");
        exit(EXIT_FAILURE);
    }
    
    /*从文件中读取数据。*/
    fgetws(wStr, LENGTH, pFile);
    
    /*将从文件中读取的数据写入到标准输出流。*/
    fputws(wStr, stdout);
    
    /*关闭文件。*/
    fclose(pFile);
        
    return 0;
}


结果:

假设gch.txt文件内容为:

时间是一切财富中最宝贵的财富。

将输出:

时间是一切财富中最宝贵的财富。

:使用Visual Studio编译。这里文本文件使用ANSI编码;ANSI编码详细介绍请查阅百度百科。


相关内容:
fgetwc 从输入流读取宽字符的函数。
getwc 从输入流读取宽字符的函数。
getwchar 从标准输入流读取宽字符的函数。
ungetwc 将宽字符推回输入流的函数。