【问题标题】:How do i change std::cout我如何更改 std::cout
【发布时间】:2019-02-05 09:35:07
【问题描述】:
#include <iostream>
#include <string>

using FText = std::string;
using Print = std::cout;

int main()
{
    FText Submission1 = 0;
    FText Submission2 = 0;
    FText Operator = "";




    return 0;
}

如你所见,

using FText = std::string

为什么我不能替换 std::cout,最令人困惑的是我得到的错误 “命名空间‘std’中没有名为‘cout’的类型”

如果 std::cout 我设法更改字符串但 cout 不工作,任何专业编码人员可以帮助我,我不喜欢输入所有内容

我正在使用 xcode

【问题讨论】:

  • cout 是一个实例,而不是一个类型。
  • 这听起来真是个坏主意。
  • 你不能这样写代码,同样的原因你不能写int a; using TA = a;
  • "change string", "change cout" 这些术语不适合您正在做的事情,或者充其量是模棱两可的。请尝试使用完整的句子来描述您的目标。干杯!
  • 懒惰打字是不必要的混淆代码的一大(如果不是最常见的)原因。写std::cout是写std::cout最简洁易读的方式,考虑到有数以百万计的c++程序员,每个人都知道std::cout是什么意思,但只有你知道Print是什么

标签: c++ xcode macos


【解决方案1】:

您可以使用usingtypedef类型引入一个新名称
std::string 是一个类型,这两个是等价的:

using FText = std::string;
typedef std::string FText;

但正如编译器所说,std::cout 不是类型(它是变量)。

您可以使用引用为std::cout 引入一个新名称:

int main()
{
    auto& Print = std::cout;
    Print << "Hallo, Word!";
}

【讨论】:

    【解决方案2】:

    如果你不喜欢命名空间说明符的外观,你可以这样做:

    int main()
    {
        using std::cout;
    
        cout<< "Hallo, Word!";
    }
    

    【讨论】:

      【解决方案3】:

      您可以创建一个新类,例如打印类而不是覆盖

      class print{
      public:
          int a;
      
          void operator<<(print &obj){
              cout<<obj.a<<endl;
          }
      
      };
      
      print obj;
      obj.a =1;
      obj<<obj;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-13
        • 2020-03-19
        • 1970-01-01
        • 1970-01-01
        • 2022-12-19
        • 1970-01-01
        • 2010-10-12
        相关资源
        最近更新 更多