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;
}

你可能感兴趣的:(unicode)