我把文件保存为unicode,结果用那个函数得不到要的字符串,而我还是想用unicode文件。
下面是我搜索到的一些信息,也是问题。-----------
_fgetts是在tchar.h中定义的宏,方便工程在unicode和非unicode转换。当工程有 #define UNICODE 时,它相当于fgetws,否则相当于fgets。其作用是从一个文本文件中读取一行字符。按照以前的经验,如果工程是UNICODE的,那要读取的文件也应该保存为UNICODE。否则会是乱码。于是按照此经验做了测试,但测试的结果却令我意外,对于UNICODE的文本,读取出来的东西完全不能看。中间多了很多0,好像是做过什么转换。又用ANSI文件测试,发现竟然读取出来了正常的UNICODE字符串。看来,是_fgetts做了转换,在定义了UNICODE时,它会不管三七二十一,都调用MultiByteToWideChar()做一次转换,所以文件必须为ANSI保存。否则就会乱码。掌握并善用这一规律,有时可能会让你节约一些代码量。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jun_01/archive/2005/07/28/437612.aspx