我需要输出一个字符,但我的系统使用的代码页没有该符号(即西班牙语感叹号“¡”)。 试图
char excl = 173;
cout.put(excl);
但它键入了另一个符号。
答案 0 :(得分:3)
如果操作系统的设置未配置到适当的代码页,则首先必须设置语言环境:
setlocale( LC_ALL, "esp" );
这会将您的语言环境设置为Spanish_Spain.1252(Windows-1252) 然后该字符的值低于161
char excl = 161;
std::cout.put( excl );
setlocale函数将指定的系统区域设置或其部分安装为新的C语言环境。修改仍然有效,并影响所有区域设置敏感的C库函数的执行,直到下次调用setlocale。
常数的解释:
- LC_ALL:选择整个C语言环境
- LC_COLLATE:选择C语言环境的排序规则类别
- LC_CTYPE:选择C语言环境的字符分类类别
- LC_MONETARY:选择C语言环境的货币格式类别
- LC_NUMERIC:选择C语言环境的数字格式类别
- LC_TIME:选择C语言环境的时间格式类别
答案 1 :(得分:0)
最终起作用的是
SetConsoleCP(1252);
SetConsoleOutputCP(1252);
可能是因为我重新安装了VC ++并在安装过程中只选择了英语语言包。