我如何更改std :: cout

时间:2018-08-30 12:25:31

标签: c++ xcode macos

#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

3 个答案:

答案 0 :(得分:4)

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

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

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

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

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

答案 1 :(得分:1)

如果您不喜欢命名空间说明符的外观,则可以执行以下操作:

int main()
{
    using std::cout;

    cout<< "Hallo, Word!";
}

答案 2 :(得分:-2)

您可以创建一个新类,例如打印类,而不是覆盖<<插入运算符,而不是使用该类的对象进行打印。

class print{
public:
    int a;

    void operator<<(print &obj){
        cout<<obj.a<<endl;
    }

};

print obj;
obj.a =1;
obj<<obj;