📜  C++ fgetws()

📅  最后修改于: 2020-09-25 09:28:44             🧑  作者: Mango

C++中的fgetws() 函数从给定的文件流中读取指定的最大数量的宽字符 。

fgetws() 函数在头文件中定义。

fgetws()原型

wchar_t* fgetws( wchar_t* str, int count, FILE* stream );

fgetws() 函数从给定的文件流(即stream)中读取最多count-1个宽字符 ,并将它们存储在str指向的数组中。

如果发生文件的末尾或字符 (\ n)被读取(计数1)宽字符之前发现解析停止。阵列str将包含换行宽字符的情况下,它被发现。

fgetws()参数

fgetws()返回值

成功时,fgetws() 函数将返回str,失败时将返回null指针。

示例:fgetws() 函数如何工作?

#include 
#include 
#include 
#include 
using namespace std;

int main()
{
    setlocale(LC_ALL, "en_US.UTF-8");
    wchar_t line1[] = L"Hëĺĺo Everɏbȍdy\n";
    wchar_t line2[] = L"C++ ċăn haʼnđle tĥeșë veɍƴ ŵeįrd čhāråcŧerƨ\n";
    wchar_t data[20];

    FILE *fp = fopen("file.txt","r+");
    fputws(line1, fp);
    fputws(line2, fp);
    rewind(fp);

    while(true)
    {
        fgetws(data, 20, fp);
        if(!feof(fp))
            wcout << data << endl;
        else
            break;
    }

    fclose(fp);
    return 0;
}

运行该程序时,可能的输出为:

Hëĺĺo Everɏbȍdy
C++ ċăn haʼnđle tĥeș
ë veɍƴ ŵeįrd čhāråc
ŧerƨ