什么是C中的fwide函数

问题描述 投票:0回答:3

[fwide函数的用途是什么?

int fwide(FILE *stream, int mode);

按照手册页显示:“设置并确定FILE流的方向”。什么意思文件流的方向?

根据我的想法,在使用fgetc之类的功能从文件中读取字符时,需要一个字节来存储检索到的数据。因此,使用fwide功能,我们可以将ascii字符的大小更改为与国际字符集(UCS)等效的大小。这样对吗 ?如果是正确的,该如何更改?

c linux unix system-calls
3个回答
1
投票

这里的方向是指文件中字符类型的方向。即流是字节字符还是宽字符(即charwchar_t)。

如果mode>0,它将尝试更改为宽字符(wchar_t)的方向。

如果mode<0,字节字符(char)方向。

如果是mode==0,则它不会尝试更改方向,而是将确定文件的当前方向。


1
投票

int fwide(FILE * stream,int模式)是用于设置(也可以获取)流方向的功能。通过定向,这三件事中的任何一个都可以成立-

  • 如果模式为0,则fwide确定流的当前方向。

  • 如果模式为正,则该流面向宽字符。

  • 如果模式为负,则流的字节为导向。

这用于获取,设置流

您的理解并非完全偏离轨道,只是有些。如果要读取wchar_t格式的数据,则将其设置为宽字符方向,否则通常的ASCII就足够了。

为了进一步简化,当您要读取简单的“ char”数据类型的超出容量]的字符时,请将方向更改为wchar_t。

我遇到以下情况,字节方向适用于“其他语言”字符。

错误=错误:严重性=严重性:状态=状态:

不知道它是如何工作的,但是,是的,使用该功能非常简单,除了已经“在线”播放。我试图设置使用重置流,并且重置部分失败。我想更好的方法是更多地使用它。


0
投票

一旦设置文件,便无法更改其宽度。 fopen(3)freopen(3)在其mode参数中支持描述文件字符集的其他字符:

© www.soinside.com 2019 - 2024. All rights reserved.