c++ - 文件输出到记事本.txt

标签 c++ ascii notepad++ fstream

我说不好,所以我只陈述事实。

情况: 我的 C++ 程序将扩展的 ascii 字符输出到文本文件。

问题: 当我用记事本打开我的文本文件时,它无法正确显示这些字符。 (我使用的是 Windows XP)

结论: 如果非要我猜的话,我会说记事本使用错误的编码保存我的文件。有没有办法修复它以便我的程序将正确的输出保存到文本文件?

代码片段:

char box[] = {
    201, 205, 187,
    186, 32, 186,
    200, 205, 188           
};

当我 outputFile << box[0] ,我的预期结果是“╔”。相反,记事本会显示一个“É”。

预期输出:

╔═════╗
║1.   ║
║     ║
║     ║
╚═════╝

记事本输出:

ÉÍÍÍÍÍ»
º1.   º
º     º
º     º
ÈÍÍÍÍͼ

编辑: 好的。我现在明白我的错误了。记事本使用 ANSI 编码。为什么当我运行我的程序并将其输出到屏幕时,它显示为“╔”?我正在使用 Dev-C++ 编写我的程序 - 这是否意味着我使用的是过时的编码? C++ 中有什么方法可以更改我使用的字符编码吗?

最佳答案

您在“扩展 ASCII”中使用方框绘图字符已过时。默认情况下,记事本可能使用 Latin-1 (ISO-8859-1)编码,代表一组不同的字符。

关于c++ - 文件输出到记事本.txt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7623089/

相关文章:

c++ - haar 级联训练时出现 bad_alloc() 错误

c++ - fstream -> seekp()/tellp() 将不起作用

java - 从当前字母中查找字母表中的第 n 个字母

xml - Win7/64位 : Notepad++ XML Tools Plugin does not load

regex - 在数据库字符串中查找和替换

c++ - 如何设置默认g++?

使用堆栈的 C++ 后缀计算器

java - 从树数据结构打印纯文本树(java)

c++ - C/C++ : How to convert 6bit ASCII to 7bit ASCII

search - Notepad++ 用于在所有打开的文档中查找全部的快捷方式