#include <iostream>
using namespace std;
int main()
{
cout << "*****************************************" <<
endl <<
cout << "Hello All!" <<
endl <<
cout << "Welcome to CSCI-111!!!!!" <<
endl <<
cout << "It is great to see you!" <<
endl <<
cout << "*****************************************" ;
return 0;
}
第一个cout很好并且输出正确,但是之后的每个cout在引号(0x600e88)之前输出一个奇怪的数字串,我的输出最终看起来像这样
*****************************************
0x600e88Hello All!
0x600e88Welcome to CSCI-111!!!!!
0x600e88It is great to see you!
0x600e88*****************************************
答案 0 :(得分:6)
您目前拥有的内容:
cout << "blah" << endl << cout << "blah" << endl << cout << ... ;
// ^~~~ ^~~~
您正在打印cout
本身,这就是为您提供奇怪的数字。
你应该拥有什么:
cout << "blah" << endl;
cout << "blah" << endl;
或者:
cout << "blah" << endl
<< "blah" << endl;
答案 1 :(得分:5)
终止endl
s:
cout << "*****************************************" << endl;
cout << "Hello All!" << endl;
cout << "Welcome to CSCI-111!!!!!" << endl;
cout << "It is great to see you!" << endl;
cout << "*****************************************" ;
或删除多余的cout
s:
cout << "*****************************************" << endl <<
"Hello All!" << endl <<
"Welcome to CSCI-111!!!!!" << endl <<
"It is great to see you!" << endl <<
"*****************************************" ;
否则,表达式会继续,并且您自己打印cout
,并且因为它是一个函数指针,所以您打印它的地址(0x600e88
)。
在序列中
cout << "Something" << endl << cout;
第一个cout
表示ostream
的开头(向控制台打印 out 的流),而第二个是要输出的流的一部分,并被视为指针,输出他包含的内容 - 调用cout
的数字地址。