我试图为计算出租车费用的程序输出欧元符号,然后将其转换为美元或欧元。 规范的一部分是我必须输出欧元符号。我尝试过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";
}
}
答案 0 :(得分:2)
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;
}
请注意,如果您打算再次使用_setmode(_fileno(stdout), _O_TEXT)
,则必须致电std::cout
。
如果使用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";
答案 1 :(得分:1)
尝试使用欧元符号的unicode字符文字:\ u20AC
cout << "Cost in euros is: " << price << "\u20AC.\n";
在评论中注明
答案 2 :(得分:0)
您可以使用此
#include <windows.h>
SetConsoleOutputCP(1252);
cout << (char)(128);