1
cout
을 사용할 때마다 출력 버퍼가 자동으로 비워지고 비워지는지 알고 싶습니다. 플러시되지 않으면 출력 버퍼의 내용을 확인할 수있는 방법이 있습니까? cout
만 사용하고 endl
을 사용하지 않는 경우를 말합니다.cout을 사용할 때 출력 버퍼가 자동으로 플러시됩니까?
다음 코드를 고려하십시오
cout << "Hello, how are you?"; //Without using endl
내가 버퍼에 미치는 영향을 플러시 확인하기 위해 이제 stringstream을 사용했다. 나는 다음과 같은 코드를 가지고 있지만, 이미 출력물이 "GoodDay"로 표시되는 이유는 무엇입니까?
string str;
stringstream ss;
ss << "GoodDay";
ss << flush;
ss >> str;
cout << str;
'std :: endl'을 사용하거나 버퍼링 된 출력이 실제로 유지 될 수 있다면 더 이상 쓸 수 없습니다. 내용 확인에 대한 질문에 대해서는 ['std :: ios_base :: register_callback'] (http://en.cppreference.com/w/cpp/io/ios_base/register_callback)을 살펴 보는 것이 유용 할 수 있습니다. [내 대답은 여기] (http://stackoverflow.com/questions/22263636/fstream-c-automatic-line-addition/22263699#22263699)도 통찰력을 줄 수 있습니다. –
그렇다면 std :: endl을 사용하지 않고 버퍼링 된 출력보다 더 많은 것을 쓰지 않으면 출력 버퍼가 cout을 사용할 때 여전히 플러시됩니까? 답장을 보내 주셔서 감사합니다. – user3347939
출력 버퍼가 여전히 cout을 사용할 때 플러시됩니까? 'Nope ... –