如何在C ++中输出欧元符号

时间:2016-11-15 14:28:29

标签: c++

我试图为计算出租车费用的程序输出欧元符号,然后将其转换为美元或欧元。 规范的一部分是我必须输出欧元符号。我尝试过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";
}

}

3 个答案:

答案 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);