개발관련/other

stringstream 변수를 지우는 방법

Rateye 2021. 6. 11. 11:19
728x90
반응형
질문 : stringstream 변수를 어떻게 지우나요?

벌써 몇 가지 시도 해봤는데

std::stringstream m; m.empty(); m.clear(); 

둘 다 작동하지 않습니다.

답변

모든 표준 라이브러리 유형에 대해 멤버 함수 empty() 는 명령이 아니라 쿼리입니다. 즉 "비어 있습니까?"를 의미합니다. "콘텐츠를 버리십시오"가 아닙니다.

clear() 멤버 함수는 ios 에서 상속되며 스트림의 오류 상태를 지우는 데 사용됩니다. 예를 들어 파일 스트림의 오류 상태가 eofbit (파일 끝)으로 설정된 경우 clear() 오류 상태를 goodbit (오류 없음).

stringstream 의 내용을 지우려면 다음을 사용하십시오.

m.str(""); 

다음을 사용하지만 정확합니다.

m.str(std::string()); 

const char* std::string 생성자를 호출하지 않기 때문에 기술적으로 더 효율적입니다. 하지만 요즘에는 어떤 컴파일러라도 두 경우 모두 동일한 코드를 생성 할 수 있어야합니다. 그래서 더 읽기 쉬운 것은 무엇이든 사용하겠습니다.

출처 : https://stackoverflow.com/questions/20731/how-do-you-clear-a-stringstream-variable
728x90
반응형