【发布时间】:2014-07-23 03:32:02
【问题描述】:
在使用 g++ 编译了大量程序后,endl; 突然出现了奇怪的行为。除了换行符之外,我还获得了十六进制数字的控制台输出。考虑到我可能有一些内存泄漏问题,我重新启动了在 Windows 之上的 VMWare 中运行的 Linux Mint Debian 版(最新)。问题仍然存在。下面是我的 g++ 版本(与之前的正常输出相比没有变化)和一个输出低于该版本的测试程序。
g++ 版本 (Debian 4.8.2-1) 4.8.2
void my_test_function(void)
{
// cout << "my_test_function is working" << cout << endl;
cout << "my_test_function is working\n" << cout << endl;
}
测试输出:
my_test_function is working 0x600ea8
【问题讨论】:
-
不是
endl这样做,从 C++11 开始,它不应该编译。 -
提示:你正在打印
cout给它自己。 -
尽量不要使用
using namespace std;,这是一种不好的做法。 -
@chris see it working!
-
@MattMcNabb,是的,libstdc++ 没有做出改变(自从我上次检查以来)。 libc++ has