2
我只想读取读取正常c中的unicode文本文件。 下面的代码是不工作的同时,读取c中的unicode文件
#include<stdio.h>
int main()
{
FILE *ptr_file;
char buf[1000];
ptr_file =fopen("input.txt","r");
if (!ptr_file)
return 1;
while (fgets(buf,1000, ptr_file)!=NULL)
printf("%s",buf);
fclose(ptr_file);
return 0;
}
你读它的罚款。问题在于你使用非Unicode功能打印它。此外,由于你没有缓冲,当宽字符跨越999/1000字节边界(或1999/2000等)时,你可能会遇到问题。 – Dave 2013-05-04 09:16:31
取决于我们正在讨论哪种形式的“unicode”。这个问题可能是Dave提到的,如果它使用UTF-8(每个标记8位,其中大多数标记与ASCII表示相同,但有些标记使用多个标记来制作一个字符),但也可能是文本是每个令牌16位,在这种情况下代码根本不起作用,因为它假定令牌是8位(如果在某个古代机器上编译,最有可能是9) – 2013-05-04 09:23:24
意味着缓冲区获得“”每个time/ – user1035089 2013-05-04 09:37:53