unicode file
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#include <wchar.h>
int main()
{
// " Unicode " Unicode
FILE *file = fopen("test.txt","wb");
wchar_t wstr[] = L" Unicode ";
wchar_t strSign = 0xfeff;
int len = wcslen(wstr);
fwrite(&strSign,1,2,file);
fwrite(wstr,1,len*2,file);
fclose(file);
// ,
file = fopen("test.txt","rb");
int nFileLen;
wchar_t buffer[100] = {0}; // , 99
if(file)
{
fseek(file,0,SEEK_END);
nFileLen = ftell(file);
fseek(file,0,SEEK_SET);
fread(buffer,1,nFileLen,file);
}
else
{
printf("file does not exists.
");
getchar();
return 0;
}
if(buffer[0] == 0xfeff)
{
printf("it's a Unicode file
");//is unicode
char strBuffer[200]={0};
if (!setlocale(LC_ALL, "chs"))
{
perror("chs");
getchar();
return 0;
}
wcstombs(strBuffer,&buffer[1] , 200);
printf("%s",strBuffer);
}
else
printf("it's not a Unicode file
");//not unicode
fclose(file);
getchar();
return 0;
}
問題は簡単です.1つのファイルはUnicode符号化です.完全な例を書いて、その中の文字が「Unicode符号化です」かどうかを読み込んで判断してください.コンソール出力Yes/Noのプログラムを作成すればよい.vcコンパイルに合格する.