본문 바로가기
SWE/C++ OOP

[C++ STL] string 공백 포함한 문자열 입력받기

by S나라라2 2018. 10. 10.
반응형

나 c쓰다가 c++ 적응 안되서 매번 string 입력 받는거 찾아보는데 


정리 좀 해둬야겠어!! 


아니면 책을 하나 정해서 표준을 외워두는게 좋을까..? 


일단 이거 매우 유용한 것 같으니



#include<iostream> // cin, cout, getline
#include<sstream> // stringstream, split_stream 
#include<string> // compare

int main(void) {

	int n;      // 몇 줄 입력받을 것인지 
	cin >> n;
	
	int nn = n+1; // getline에서 처음에 숫자 입력받는 것도 포함하기 때문에 n+1을 해줘야 함

	while (nn-- > 0) {

		// 한 줄씩 입력 받음
		string line;
		getline(cin, line); // 띄어쓰기(공백)도 입력받을 수 있음. 엔터(\n) 전까지 계속 입력받음.

		// 띄어쓰기로 나눔
		stringstream split_stream(line); // split_stream 아주 유용함!
		string word;
		while (split_stream >> word) { // 띄어쓰기 전까지 자른 문자열을 word에 넣음

			if (word.compare("push_back")==0) { // string함수 중에 compare를 사용하면 
                                                // 동일한지, 알파벳 우선순위를 비교해줌
				int num;
				split_stream >> num;        // string에서 int 타입으로 바꾸고 싶다면
                                            // int로 선언해준 변수(num)에 >>넣어주면 돼.
				push(num, 0);
			}
        }
    }
}
반응형