ProgrammingLang/c++
[C++ 개발자되기] 6. istringstream, ostringstream, stringstream 사용법
jinkwon.kim
2019. 7. 24. 23:27
728x90
반응형
>>[C++ 관련 모든 글 보기]
1. istringstream과 ostringstream과 stringstream 은 무엇인가??
문자열을 다룰 때 유용하게 사용 가능한 Class입니다.
1) istringstream
- 문자열 포맷을 parsing 할 때 사용합니다.
2) ostringstream
- 문자열 format을 조합하여 저장할 때 사용합니다.
3) sstringstream
- 문자열에서 내가 원하는 자료형의 데이터를 추출할 때 사용합니다.
2. 헤더 정보
#include <sstream>를 include 하면 사용 가능합니다.
3. 기본 사용법
1) istringstream로 문자열 format을 분해 하기
- 다음 예제에서 space 또는 tap으로 구분된 "test 123 123hah ahha"를 각 변수에 알맞게 넣은 예제입니다.
#include<iostream>
#include<sstream>
int main() {
std::istringstream iss("test 123 123hah ahha");
std::string str, str1, str2;
int inta;
std::cout<< iss.str() <<std::endl;
iss >> str >> str1 >> str2 >> inta;
std::cout<<"str : "<< str <<std::endl;
std::cout<<"str1 : "<< str1 <<std::endl;
std::cout<<"str2 : "<< str2 <<std::endl;
std::cout<<"inta : "<< inta <<std::endl;
}
2) ostringstream로 문자열 format으로 문자열 생성하여 저장
#include<iostream>
#include<sstream>
int main() {
std::ostringstream oss;
int inta = 10;
std::string str = " test_string";
oss << "test " << inta << str <<std::endl;
std::cout<< oss.str();
}
3) stringstream로 문자열 저장 후 parsing 하기
(1) stringstream에 문자열 넣는 방법 1 (문자열로 입력)
(2) stringstream에 문자열 넣는 방법 2 (문자열 format 사용하여 입력)
#include<iostream>
#include<sstream>
int main() {
// stringstream에 문자열 넣는 망법 1 (문자열로 입력)
std::stringstream ss1("test 1 2 3 4 5");
std::string str;
// while(ss1 >> str)이란, 더 이상 str의 자료형에 맞는 정보가 없을 때까지
// 계속 스트림에서 str으로 자료를 추출/복사하는 것이다. 끝에 도달하면 끝난다.
while ( ss1 >> str ) {
std::cout<< str <<std::endl;
}
// stringstream에 문자열 넣는 망법 2 (문자열 format 사용하여 입력)
std::stringstream ss2;
ss2 << "1" << ' ' << -1 << ' ' << 2 << 3;
while ( ss2 >> str ) {
std::cout<< str <<std::endl;
}
return 0;
}
4. 응용 사용법
1) ostringstream 재사용 초기화
#include <iostream>
#include <sstream>
int main()
{
std::ostringstream oss;
oss << "test 1";
oss.clear();
oss.str("");
oss << "test 2";
return 0;
}
//출력 결과 test 2
>>[C++ 관련 모든 글 보기]
[C++ 개발자되기] 1. C에는 없고 C++만 있는 것
본 Serise는 C개발자가 C++개발자로 되는 과정에서 겪은 시행 착오를 정리하는 것 입니다. 그래서 목차가 없습니다. 생존을 위한 정리 입니다. 1. 현재 언어 별 스펙 점검 - C : 7년, C로 왠만한거 다 할 수 있음...
doitnow-man.tistory.com
728x90
반응형