c ++中int的ostringstream问题

时间:2009-12-06 02:03:22

标签: c++ xcode string macos

我希望以下代码输出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中的活动配置“调试”中的问题创建的

4 个答案:

答案 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版本似乎已被打破。