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