stringstream
2022. 11. 10. 01:45ㆍc++
728x90
1. stringstream 이란?
문자열에서 작동하는 스트림 클래스 입니다.
이 클래스 객체는 일련의 문자를 포함하는 문자열 버퍼를 사용하고 있습니다.
문자열에서 내가 원하는 자료형의 데이터를 추출할 때 사용합니다.
2. 헤더 정보
#include <sstream>를 include 하면 사용이 가능합니다.
3. 기본 사용법
string str1 = "1D2S#10S";
string str2 = "1111DAWV2S#10S";
stringstream ss1(str1);
stringstream ss2(str2);
int num1, num2;
while (ss1 >> num1) cout << num1 << endl;
while (ss2 >> num2) cout << num2 << endl;
이런식으로 출력을 한다면 결과는 어떻게 나올까요?
1 1111
string str1 = "1D2S#10S";
string str2 = "1111DAWV2S#10S";
그러면 char형으로 한번 받아보겠습니다.
string str1 = "1D2S#10S";
string str2 = "1111DAWV2S#10S";
stringstream ss1(str1);
stringstream ss2(str2);
char ch1, ch2;
while (ss1 >> ch1) cout << ch1 << " ";
while (ss2 >> ch2) cout << ch2 << " ";
1 D 2 S # 1 0 S
1 1 1 1 D A W V 2 S # 1 0 S
이번에는 str1, str2에 들어가 있는 모든 것들이 출력되었습니다.
예제를 통해 보면 알겠지만, 처음 int형으로 받게 되면 숫자로 되어있는부분을 받아옵니다.
하지만, string은 char형으로 이루어져 있기 때문에 모든 문자열을 받아올 수 있습니다.
string str1 = "1D2S#10S";
stringstream ss1(str1);
cout << ss1.get() << " ";
cout << ss1.get() << " ";
cout << ss1.get() << " ";
cout << ss1.get() << " ";
cout << ss1.get() << " ";
ss1.unget();
cout << ss1.get() << " ";
return;
49 68 50 83 35 35
- get() : 커서를 하나씩 옮기면서 값을 반환합니다.
- unget() : 커서를 앞으로 다시 옮깁니다.
그래서 보시면 아스키코드로 나오는데, 마지막에 unget()을 사용하고
다시 get()으로 받아온 값을 출력해보니, 그 전과 값이 똑같습니다.
stringstream 을 잘 사용하면 엄청 유용한 기능이 될 것 같습니다.
728x90
'c++' 카테고리의 다른 글
| char배열에 문자를 입력받아서 숫자로 변환 (0) | 2022.12.19 |
|---|---|
| (c++) string 클래스 변환-c_str() 함수 (0) | 2022.11.21 |
| size_t 자료형 (0) | 2022.11.10 |
| assert 함수 (c++) (0) | 2022.11.10 |
| (c,c++) double형 출력 등등 (0) | 2022.11.10 |