【问题标题】:How to get output in other spoken languages other than English?如何以英语以外的其他口语输出?
【发布时间】:2021-02-01 11:05:15
【问题描述】:

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

代码示例

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

结果:

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

【问题讨论】:

  • 您需要一个支持字符串编码的终端(和适当的字体)。
  • @molbdnilo 你能推荐任何终端和字体吗?我是 C++ 新手,所以我不太了解这些东西

标签: c++ calculator


【解决方案1】:

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

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

我建议你找到印地语的字符集,就像英语有ASCII(分类ISO646系列)。

您可以找到更多关于 wstringwcouthere 的信息,由其他用户发布。请记住将代码文件保存为 UTF8(或正确的语言环境),否则字符将简单地从代码。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 如果 OP 没有使用 Windows,或者想要编写可移植代码怎么办?
    • @Vaibhav 我可以在复制它们并将它们粘贴到浏览器中时显示这些字母,但是当我在命令提示符中运行我的应用程序时,它会显示问号而不是字母
    • 也许您可以通过将消息转换为 utf-8 来显示消息
    • @VaibhavMahajan 看看link UTF-8 编码后和之前一样
    【解决方案3】:

    您可以在 C++ 中使用 setlocale 函数。您可以包含 locale.h 标头(如果您需要更多 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) 这个功能在我的项目中帮助了我很多。

    【讨论】:

      猜你喜欢
      • 2015-09-26
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多