Reputation: 26713
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
Reputation: 26713
Changing the Active Configuration in XCode from 'Debug' to 'Release' works as a workaround.
Upvotes: 4
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 --
c++ test.cpp
-- works finec++ -D_GLICXX_DEBUG=1 test.cpp
-- failc++ -arch i386 -D_GLICXX_DEBUG=1 test.cpp
-- works fineWhat can we say about this? In short, Debug version of 64 bit stdc++ seem to be broken.
Upvotes: 1
Reputation: 2321
Yep, tested on this end (windows XP Pro) and it works swimmingly
Upvotes: 2
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