牛骨文教育服务平台(让学习变的简单)
博文笔记

fgetws读取UNICODE的问题

创建时间:2014-12-24 投稿人: 浏览次数:1189

用了半天把问题搞定,问题描述.

1.有一个的uniocde文档,用fopen(path,"r")打开后,然后用fgetws去读发现根本不是自己想要的字符串,而是每一个字符后面多了一个0,如果我的UNICODE字符串是pro,

示例:

fopen(path,"r");

TCHAR _Tsource_buffer[256];

FILE *P;

fgetws(_Tsource_buffer,256,P);

结果发现_Tsource_buffer的内容是"p","0","r",“0”,“o”,"0",

但为用fread读出来又是"pro",很奇怪,找了半天最后发现fopen打开发现有问题,改为open(path,"rb")才正确,

分析一下,原来以“r”方式打开是以文本形式读文件,相当于以ASCII码读内容,而“rb”是以二进制形式读,fread也是以二进制读。



声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。