一个关于标准输入输出的练习要求我:
从标准输入读取输入并将其写入标准输出。
一个可能的解决方案是:
#include<iostream>
#include<string>
using std::cin; using std::cout;
using std::string;
int main()
{
string word;
while (cin >> word)
cout << word;
return 0;
}
在这个例子中,该字符串作为缓冲区。如果尝试通过执行以下操作来摆脱缓冲区:
#include<iostream>
using std::cin; using std::cout;
int main()
{
while (cout << cin)
;
return 0;
}
结果非常不同。当我运行此代码时,终端会输出一长串类似于“0x600d30”的字符流。
为什么会这样?这些程序为什么表现不同?
cout << cin
编译通过的? - emlai