아래의 동작에 대한 표준에 대한 설명이 있습니까?C++ Ostringstream의 이상한 동작
다음 코드 :
#include <sstream>
#include <iostream>
using namespace std;
int main()
{
ostringstream os1;
ostringstream os2;
os1 << 1 << " " << 2;
os2 << 1 << " " << 2 << " " << 3;
const char *p = os1.str().c_str();
cout << os2.str() << endl;
cout << p << endl;
return 0;
}
디스플레이 출력 : 그러나
1 2 3
1 2 3
, 나는 디스플레이에 기대 : OS1 객체가 어떻게 든 영향을 같은
1 2 3
1 2
같습니다 os2.str() 호출을 제거하면 os2에 의해 예제가 올바르게 작동합니다.
Solaris Studio 12.2 및 G ++ 4.8.1 및 둘 모두가 동일한 방식으로 동작하는 경우 예제를 시도했습니다.
도움 주셔서 감사합니다.
이 코드는 "1 2 3 \ n1 2 \ n"을 내 컴퓨터의 w/g ++에 인쇄합니다. – jma127
여기에서 시도하십시오 : http://www.compileonline.com/compile_cpp_online.ph –
@ jma127 P.An과 같은 데비안에서 g ++ 4.8.1을 사용하여 이상한 결과를 얻었습니다. – PhillipD