차이

2014-10-29 11 views
4

는 누군가의 미묘한 차이를 설명 할 수 왜냐하면 stringstream이 filestream이 비어있는 것보다 비어 있다면 ...? 이 바보 같지 않아? 나는 어떤 문자가 streambuffer에서 추출 할 수 없었다 경우 "삽입"streambuffers는 failbit를 설정하는 것을차이

답변

5

삽입 연산자 ... 내가 아주 << s.rdbuf()을 이해 해달라고 생각 - [ostream.inserters]/9 :

함수가 문자를 삽입하지 않으면 setstate(failbit) (ios_base:: failure (27.5.5.4))을 호출 할 수 있습니다.

문자열을 출력하는 삽입 연산자는 분명히 쓰여진 문자의 양을 고려하지 않습니다.

스트림 버퍼를 스트림에 삽입하면 스트림 버퍼에 스트림이 전달되기 때문인 것으로 보입니다. 가장 확실하게 추출 할 수있는 문자가 없으면 스트림 버퍼 자체에 오류가 있으며이 오류는 스트림 오류 상태로 표시되어야합니다. 빈 스트림을 출력하는 것은이 규칙을 만들 때 고려해야 할 중요한 것으로 간주되지 않는 예외입니다.