phoganuci
phoganuci

Reputation: 5064

stringstream question

Here is some code that used to work with my code, but is having a problem now:

#include <iostream>
#include <fstream>
#include <sstream>
#include <cstring>

using namespace std;    
int main()
{
 stringstream out;
 out << 100;
 cout << out.str();
}

I get just blank output. I just changed to snow leopard with Xcode 3.2.

Upvotes: 0

Views: 3679

Answers (4)

user213764
user213764

Reputation:

Get this exact same issue under the same conditions Snow Leopard 64-Bit XCode 3.2 Base SDK 10.6 and the switch to Base SDK 10.5 resolves it.

Apparently it's a SDK 10.6 issue.

and the correct workaround is to remove the preprocessor macros:

  • _GLIBCXX_DEBUG=1
  • _GLIBCXX_DEBUG_PEDANTIC=1

From the preprocessor settings (or else fall back to SDK 10.5 as above).

Apple Discussion Link

Upvotes: 2

anon
anon

Reputation:

Shouldn't you add the end of string before converting to string?

cout << out.str() << sdt::ends;

Upvotes: -1

Omnifarious
Omnifarious

Reputation: 56078

Another idea is that you have a .o file left over from before you upgraded that's somehow messing things up. Mixing .o files from two different versions of the C++ compiler can cause all kinds of strange problems. I also do not discount the header file issue as well, though sstream should be including string.

Upvotes: 0

ntcong
ntcong

Reputation: 800

it works for me. if there's a problem, it should be your gcc's.

btw, maybe you have to add fflush(stdout); after the cout << sometime the problem is stdout buffer

#include <iostream>
#include <fstream>
#include <sstream>
#include <cstring>

using namespace std;
int main()
{
 stringstream out;
 out << 100;
 cout << out.str();
 fflush(stdout);
}

Upvotes: 1

Related Questions