문자열 스트림을 효과적으로 재설정
C에서 문자열 스트림은 문자열을 조작하고 구문 분석하는 데 유용한 도구입니다. 문자열 스트림을 재설정하기 위해 개발자는 str() 메서드를 사용하여 기본 문자열을 지웁니다. 그러나 이 접근 방식은 스트림을 완전히 재설정하지 못할 수도 있습니다.
사례 연구
다음 코드 조각을 고려하세요.
<code class="cpp">stringstream parser; parser << 5; short top = 0; parser >> top; parser.str(""); // Attempting to reset parser parser << 6; // Fails to insert 6 into parser short bottom = 0; parser >> bottom;</code>
의도는 다음과 같습니다. 파서 스트림을 재설정하고 여기에 새 값을 할당합니다. 그런데 코드가 예기치 않게 파서에 6을 삽입하지 못합니다.
오류 이해
문제의 근본 원인은 불완전한 재설정에 있습니다. str() 메서드는 기본 문자열만 지우고 오류 플래그(예: eof 및 실패)는 설정된 상태로 유지됩니다. 스트림에서 읽기와 같은 후속 작업은 이러한 플래그로 인해 실패합니다.
적절한 재설정 기술
문자열 스트림을 효과적으로 재설정하려면 지우는 것뿐만 아니라 문자열을 삭제하고 오류 플래그도 재설정합니다. 이는clear() 메소드를 사용하여 달성할 수 있습니다.
<code class="cpp">parser.str( std::string() ); parser.clear();</code>
str()과clear()를 모두 호출하면 문자열이 빈 문자열로 재설정되고 모든 오류 플래그가 지워져 후속 작업이 보장됩니다. 작업이 성공할 것입니다.
위 내용은 C에서 Stringstream을 효과적으로 재설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!