作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我试图为计算出租车费用的程序输出一个欧元符号,然后将其转换为美元或欧元。规范的一部分是我必须输出一个欧元符号。我已经尝试过 Unicode,但我没有任何运气。任何帮助将不胜感激,谢谢。
这是我的代码:
void produceFareInOtherCurrency(){
//Constant variable for eurosign
const char EUROSIGN = 128;
//Selects currency
switch (currency)
{
//Euros
case 'E':
price = price * 1.1;
cout << "Cost in euros is: " << price << EUROSIGN << ".\n\n";
break;
//Dollars
case '$':
price = price * 1.22;
cout << "Cost in US Dollars is: $"<< price << ".\n\n";
break;
//Exit
case '#':
break;
//Error message
default:
cout << "ERROR: Currency unknown!\n\n";
}
}
最佳答案
Windows 对在控制台中打印 Unicode 的支持有限。在 Visual Studio 中,您可以使用 _setmode
打印 Unicode 符号:
#include <iostream>
#include <string>
#include <io.h>
#include <fcntl.h>
int main()
{
_setmode(_fileno(stdout), _O_U16TEXT);
std::wcout << L"€\n";
return 0;
}
请注意,如果您打算再次使用 std::cout
,则必须调用 _setmode(_fileno(stdout), _O_TEXT)
。
如果使用 MinGW,请改用以下内容:
#include "windows.h"
void myprint(const wchar_t* str)
{
WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), str, wcslen(str), NULL, NULL);
}
int main()
{
myprint(L"€\n");
return 0;
}
在 Linux 中你可以简单地尝试
std::cout << "€\n";
关于c++ - 如何在C++中输出一个欧元符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40612344/
我是一名优秀的程序员,十分优秀!