好的新闻日 我执行学习任务,使用输入/输出文本处理文件。一般来说,该计划的重点是:
要使用文本,我使用char和wchar_t类型和函数WideCharToMultiByte()
。问题是如果输入文件具有输出UTF-8
或UTF-16
编码,则输出文件具有2种不同的编码。
阅读输入文件
while (!feof(file))
{
w = getwc(file);
wch_buffer[i] = w;
i++;
}
转换为char
size = WideCharToMultiByte(CP_UTF8, 0, wch_buffer, -1, NULL, 0, NULL, NULL);
WideCharToMultiByte(CP_UTF8, 0, wch_buffer, -1, result, size, NULL, NULL);
并添加到输出文件
fputs(ch_buffer, OutPut);
像那样的东西
fprintf(OutPut,"\nОшибка. На строке %d обнаружен повторное открытие тега",Line);
然后我在 Notepad ++ 中打开输出文件并更改编码。之后只有1部分文本可读(拉丁符号在两部分中都可读)。顺便说一下,在控制台中,一切都很好。 IDE VS2012
2张图片显示了在 Notepad ++
中更改编码的情况