2010-04-24 5 views
2

cin이 읽기를 시작하기 전에 왜 cout을 플러시해야합니까? 다른 버퍼가 아닌가? 출력 버퍼 (플러시하기 전에)에 넣는 동안 버퍼에 입력을 읽을 수 있습니다. 2 개의 다른 버퍼. 나는 여기서 혼란스러워한다. 두 스트림이 서로 연결되는 이유입니다,cin을 사용하여 입력을 읽기 전에 cout을 플러시하는 이유는 무엇입니까?

std::cout << "Enter your name: "; 
std::string name; 
std::cin >> name; 

당신은 입력하기 전에 프롬프트를보고 싶지 않습니다

답변

6

정식 예는이입니다.

8

플러시 할 필요가 없습니다. -이 단지 편리한 기능입니다

cout << "Enter your name:"; 
cin >> name; 

프롬프트가 입력이 시작되기 전에 나타납니다 : 당신은 같은 일을 할 때 디폴트로 스트림 함께 tied이다. 그러나, 당신이 그들을 풀어 수 있습니다 (반드시) 입력하기 전에 플러시되지 않습니다 cout을

cin.tie(static_cast<ostream*>(0)); 

다음은 CIN 수행됩니다.

+0

버퍼를 표시하지 않고 버퍼에 '이름 입력 :'을 유지하려면 어떻게해야합니까? – yapkm01

+0

@ yapkm01 내가 말한 것처럼 - 실제로는 그렇게하지 않으려 고합니다. –

+0

cool Thx a zillion :) – yapkm01

관련 문제