C++의 표준 라이브러리의 일부로 'sstream' 헤더 파일에 정의 되어있다. 문자열 스트림으로 작동하며, 일반적인 입출력 스트림처럼 사용할 수 있다.
'stringstream'은 문자열을 읽거나 쓸 때 편리한 방법을 제공하고 문자열로부터 값을 추출하거나 문자열에 값을 삽입할때 사용한다
#include <sstream>
stringstream을 사용하기 위해 sstream 헤더 파일을 포함
std::istringstream inputStringStream;
std::ostringstream outputStringStream;
std::stringstream stringStream;
istringstream은 입력 스트림으로만
ostringstream은 출력 스트림으로만
stringstream은 입력과 출력 스트림으로 작동한다
예제
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string input_string = "10 20 30 40 50";
std::istringstream iss(input_string);
int num;
while (iss >> num) {
std::cout << "Read number: " << num << std::endl;
}
return 0;
}
결과
Read number: 10
Read number: 20
Read number: 30
Read number: 40
Read number: 50
예제
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::ostringstream oss;
int num1 = 42;
double num2 = 3.14;
std::string str = "Hello, C++!";
oss << "Integer: " << num1 << ", Double: " << num2 << ", String: " << str;
std::string result = oss.str();
std::cout << result << std::endl;
return 0;
}
결과
Integer: 42, Double: 3.14, String: Hello, C++!
예제(공백과 개행문자를 제거해 문자열 나누기)
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string input_string = "Token1 Token2 Token3\nToken4 Token5";
std::stringstream ss(input_string);
std::string token;
while (ss >> token) {
std::cout << "Token: " << token << std::endl;
}
return 0;
}
결과
Token: Token1
Token: Token2
Token: Token3
Token: Token4
Token: Token5
예제(특정 문자를 기준으로 문자열 나누기)
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string input_string = "Item1|Item2|Item3";
char delimiter = '|';
std::stringstream ss(input_string);
std::string token;
while (getline(ss, token, delimiter)) {
std::cout << "Token: " << token << std::endl;
}
return 0;
}
결과
Token: Item1
Token: Item2
Token: Item3