C++的欧元符号
Euro Symbol for C++
我正在Visual Studio 2013中用C++创建一个小型货币转换程序。
对于井号,我使用 Windows-1252 代码为 £ 符号创建了一个字符变量。
const char poundSign(156);
我需要找到一种方法来实现欧元符号,欧元符号。当我运行程序时。
您不应该使用任何已弃用的扩展 ASCII 编码,因为它们现在早已过时。 正如user1937198所说,156
是古老的Windows-1252*编码中£
的字符代码。 这些编码中非 ASCII 字符的外观取决于用户选择的代码页,这使得在这种方案下无法混合来自不同代码页的字符。此外,如果用户选择了错误的代码页,他们将非常困惑。
考虑改用 Unicode。 由于您使用的是 Windows,因此您可能应该使用 UTF-16,在这种情况下,正确的方法是声明:
// make sure the source code is saved as UTF-16!
const wchar_t poundSign[] = L"£";
const wchar_t euroSign[] = L"€";
在 UTF-16 中,由于代理项机制,不能保证单个字符仅包含 1 个字符,因此最好将"字符"* 存储为字符串。
请记住,这意味着程序的其余部分也应该切换到Unicode:使用Windows API的"W"版本(WCHAR
版本)。
[*] 在技术术语中,每个"Unicode 字符"都称为一个码位。
您必须区分翻译环境和执行环境。例如,这在很大程度上取决于程序的运行位置,将什么字形分配给您要生成的字符(参见"代码页")。
您可能需要检查您的终端或任何 unicode 感知的东西,然后使用适当的代码点。
此外,您不应以您的方式创建字符常量。请改用字符文本。
相关文章:
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 将无符号char*转换为std::istream*C++
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- vscode g++链路故障:体系结构x86_64的未定义符号
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何理解将半精度指针转换为无符号长指针和相关的内存对齐
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 使用gcc从静态链接的文件中查找可选符号
- C++中无符号字符溢出
- 使用无符号字符数组有效存储内存
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- VC++本机单元测试,找不到调试符号
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- 检查TCHAR数组输入是否为带符号整数C++
- 用符号版本替换对函数的所有调用
- 未解析的外部符号_MsiLocateComponentW@12.
- 如何打印boost多精度128位无符号整数
- C++模板函数,用于比较任何无符号整数和有符号整数
- 在 Mac 上使用 CMAKE 将 FFTW 和 FFTWPP 链接到项目中时未定义的符号