Bootstrap

c++ 读取unicode文档


int ReadOneNameFile(char *filename, unsigned short names[g_maxLineNum][g_maxCharInLine], int &iLine)
{
printf("%s\n", filename);
ifstream fin;
fin.open(filename, ios::binary);
size_t index = 2;
int nameIndex = 0;
//while (!fin.eof()) //注意这行如果是这行代码,最后读取出来的数据最后一个字符会多一个,
while (fin.peek() != EOF)
{
fin.seekg(index, ios::beg);
wchar_t wch;
fin.read((char *)(&wch), 2);
if (wch == 0x000D) // 判断回车
{
iLine++;
if (iLine > g_maxLineNum)
{
fin.close();
return 0;
}
nameIndex = 0;
index += 4; // 跳过回车符和行开头符
}
else
{
names[iLine][nameIndex] = wch;
index += 2;
nameIndex++;
}
}

if (nameIndex > 0)
{
iLine++;
}
fin.close();
return 0;
}
;