如何获得英语以外的其他口语输出?

How to get output in other spoken languages other than English?

我想用英语以外的口语制作一个计算器,例如印地语。我尝试使用“'cout'”函数制作一个,但它给了我意想不到的错误。请告诉我该怎么做

代码示例

cout<<name<<", "<<"कृपया ऑपरेटर दर्ज करें--> ";
cin>>op;
switch (op)
{
    case '+':
     cout<<name<<", "<<"कृपया पहला नंबर दर्ज करें--> ";
     cin>>x;
     cout<<name<<", "<<"कृपया दूसरा नंबर दर्ज करें--> ";
     cin>>y;

结果:

    कृपया ऑपरेटर दर्ज करें--> +
कृपया पहला नंबर दर्ज करें-->
कृपया दूसरा नंबर दर्ज करें-->

我不熟悉控制台中使用的印地语字体,但你需要做以下事情:-

  • 使用 std::locale 或使用 unicode(对于 examplestd::wstring 和 std::wcout)设置正确的代码页。
  • 将您的控制台设置为可以显示这些字符的字体。

建议你找印地文字符集,像英文有ASCII(分类ISO646系列)。

您可以找到有关 wstringwcout 的更多信息,here 发布者 user.Remember 将代码文件保存为 UTF8(或正确的语言环境) ) 否则字符将从代码中简单地 'disappear'。

要以印地语或任何 none 语言显示输出,我们首先需要将 UTF 编码设置为输出编码

#include <string>
#include <iostream>
#include <Windows.h>

int main() {
    std::string test = u8"Greek: αβγδ; German: Übergrößenträger";
    SetConsoleOutputCP(65001);
    std::cout << test;
}

您可以在 C++ 中使用 setlocale 函数。您可以包括 locale.h header(如果您需要更多特定于 C 的功能,此功能可以提供使用货币、语言等的可能性)。 示例代码:

include <locale.h>

int main(){
    setlocale(LC_ALL,"en_US.utf8");
    
    // Your code
    
    return 0;
}

说明: setlocale函数设置当前程序使用的地区信息,而不是改变整个地区。 setlocale函数接受两个参数:1.category(LC_ALL); 2. 语言环境("en_US.utf8")。语言环境可以不同。 参考:setlocale in c++ (reference) 这个功能对我的项目帮助很大。