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
반응형
'개발관련 > other' 카테고리의 다른 글
파일의 전체 경로에서 디렉토리를 가져 오는 방법 (0) | 2021.06.13 |
---|---|
'Microsoft.ACE.OLEDB.12.0'공급자가 로컬 컴퓨터에 등록되지 않았습니다. (0) | 2021.06.13 |
여러 PDF 파일을 하나의 PDF로 병합 / 변환 (0) | 2021.06.10 |
ASP.NET MVC 컨트롤러가 이미지를 반환 하는 방법 (0) | 2021.06.09 |
Node.js 프로그램에 명령 줄 인수를 전달하는 방법 (0) | 2021.06.08 |