Moglobin's
article thumbnail
Published 2021. 8. 22. 13:46
[C++] stringstream 컴공

Basic Input/Output - C++ Tutorials (cplusplus.com)

 

Basic Input/Output - C++ Tutorials

12345678910111213141516 // cin with strings #include #include using namespace std; int main () { string mystr; cout << "What's your name? "; getline (cin, mystr); cout << "Hello " << mystr << ".\n"; cout << "What is your favorite team? "; getline (cin, mys

www.cplusplus.com

 

 

스탠다드 헤더 <sstream>은 stringstream이라는 타입을 정의한다. 이는 string을 stream으로 다룰 수 있게 해주고, 따라서 cin과 cout에서처럼 string에게 행해지는 추출과 삽입 연산들을 할 수 있게 해준다. 이 기능은 스트링을 숫자로 바꾸거나 반대로 숫자를 스트링으로 바꿀 때 매우 유용하게 쓰인다. 예를 들어, 스트링에서 정수를 추출하기 위해 우리는 다음과 같이 쓸 수 있다:

 

이것은 최초에 "1204"라는 값으로 정의된 스트링과 정수 myint라는 정수 변수를 선언한다. 그리고, 세번 째 줄은 이 변수를 사용하여 string으로부터 만들어진 stringstream에서 추출을 한다. 이 조각의 코드는 정수 값 1204를 myint라는 변수에 저장하게 한다.

 


 

 

이 예제에서는, 우리는 스탠다드 인풋으로부터 숫자 값을 간접적으로 얻어볼 것이다: cin으로부터 숫자 값을 바로 추출하는 대신, 우리는 스트링 요소인 mystr으로 부터 줄을 읽고, 그 뒤에 우리는 해당 스트링에서 그 값을 추출하여 price와 quantity에 넣게 된다. 이것들은 숫자 값이기 때문에, 곱하기와 같은 산술 연산이 가능하다.

이렇게 전체 라인을 읽고 그들의 요소를 추출하는 접근법으로, 우리는 사용자의 입력과 데이터로서의 해석을 구분하여 유저가 일반적으로 인식하는 프로세스의 과정이 될 수 있게 한다. 동시에 이는 유용한 데이터만을 뽑아 프로그램이 다루기 용이하게 해준다.

 

profile

Moglobin's

@슈플로프

Take your time 🍋