使用ostream和运算符打印到控制台<<

时间:2016-12-31 21:38:30

标签: c++ g++

在一个旧的项目代码中有一个如下声明:

cout.operator<<("Hi...");    
ostream.operator<<("Hi....");

它认为它可以写成followa,导致相同的输出:

cout << "Hi..";

我试图将这些语句放在main()中。但是编译器给出了错误:

In function 'int main()':
11:3: error: 'ostream' was not declared in this scope
11:3: note: suggested alternative:
In file included from /usr/include/c++/4.9/ios:38:0,
                 from /usr/include/c++/4.9/ostream:38,
                 from /usr/include/c++/4.9/iostream:39,
                 from 2:
/usr/include/c++/4.9/iosfwd:136:33: note:   'std::ostream'
   typedef basic_ostream<char>   ostream;

我不相信的另一件事是ostream可以直接调用运算符&lt;&lt; 。与 cout 相同,可以直接调用运算符&lt;&lt;

如果某个机构可以详细说明或解释如何,那么我将能够调试代码 感谢。

1 个答案:

答案 0 :(得分:0)

有问题的代码行实际上可以编译并且可以正常工作,例如:

#include <iostream>

using namespace std;

int main (void)
{
    cout << "Hi"; // code line in question

    cout << endl;

    return 0;
}

引用的错误是由ostream cout的类型引起的,该<span *ngIf="inEditMode(r.RuleParentID, a.AttributeID)"> <app-inline-select (selected)="saveToArray($event)" [source]="fetchSourceList(a.AttributeID)" [ruleParentID]="r.RuleParentID" [attributeID]="a.AttributeID"></app-inline-select> </span> 类型是需要对象(非类型)的地方。
正如评论中所提到的,该错误的修复是使用该类型的对象。这基本上是指第一行引用代码,即上面解决方案代码中的行。