Yuval Karmi
Yuval Karmi

Reputation: 26713

ostringstream problem with int in c++

I would expect the following code to output hello5. Instead, it only outputs hello. It seems to be a problem with trying to output an int to the ostringstream. When I output the same directly to cout I receive the expected input. Using XCode 3.2 on Snow Leopard.

Thanks!

#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;
}

EDIT: See the answer I posted below. This seems to be created by a problem in the Active Configuration 'Debug' in XCode 3.2 on Snow Leopard

Upvotes: 4

Views: 1994

Answers (4)

Yuval Karmi
Yuval Karmi

Reputation: 26713

Changing the Active Configuration in XCode from 'Debug' to 'Release' works as a workaround.

Upvotes: 4

epatel
epatel

Reputation: 46041

I just tested and it worked just fine on my Mac with Xcode 3.2.1 and Snow Leopard. It not that your prompt is shadowing the output? Try add an endl to the cout line?

-- Edit --

My test suite

  • c++ test.cpp -- works fine
  • c++ -D_GLICXX_DEBUG=1 test.cpp -- fail
  • c++ -arch i386 -D_GLICXX_DEBUG=1 test.cpp -- works fine

What can we say about this? In short, Debug version of 64 bit stdc++ seem to be broken.

Upvotes: 1

Brendan Lesniak
Brendan Lesniak

Reputation: 2321

Yep, tested on this end (windows XP Pro) and it works swimmingly

Upvotes: 2

Patrick Glandien
Patrick Glandien

Reputation: 7851

Your code is correct, it writes hello5 on my Windows 7 machine. Maybe the problem is rather that you don't write a std::endl or something which might confuse your OS.

Upvotes: 3

Related Questions