我希望以下代码输出hello5
。相反,它只输出hello
。
尝试将int输出到ostringstream
似乎是一个问题。
当我将其直接输出到cout
时,我收到了预期的输入。在Snow Leopard上使用XCode 3.2。
谢谢!
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main(){
int myint = 5;
string mystr = "hello";
string finalstr;
ostringstream oss;
oss << mystr << myint;
finalstr = oss.str();
cout << finalstr;
return 0;
}
编辑:请参阅我在下面发布的答案。这似乎是由Snow Leopard上的XCode 3.2中的活动配置“调试”中的问题创建的
答案 0 :(得分:4)
将XCode中的活动配置从“调试”更改为“发布”可以解决此问题。
答案 1 :(得分:3)
你的代码是正确的,它在我的Windows 7机器上写了hello5。也许问题在于您不会编写std :: endl或者可能会混淆您操作系统的内容。
答案 2 :(得分:2)
是的,在这方面进行了测试(Windows XP专业版)并且它可以游戏地运行
答案 3 :(得分:1)
我刚测试过它在我的Mac上使用Xcode 3.2.1和Snow Leopard工作得很好。这不是你的提示阴影输出?尝试在cout行添加endl
?
- 编辑 -
c++ test.cpp
- 工作正常c++ -D_GLICXX_DEBUG=1 test.cpp
- 失败c++ -arch i386 -D_GLICXX_DEBUG=1 test.cpp
- 工作正常我们能说些什么呢?简而言之,64位stdc ++的Debug版本似乎已被打破。