본문 바로가기
프로그래밍/MFC (C++)

MFC ] stringstream 사용하여 문자열 파싱하기

by eteo 2022. 7. 14.

예제코드

CString result;
string str = CT2CA(result);
istringstream ss(str);
string line;
int i = 0;
while(getline(ss, line, '\n'))
{
    istringstream linestream(line);
    string cell;

    getline(linestream, cell, ',');
    m_list.InsertItem(i, cell.c_str());

    int j = 0;
    while (getline(linestream, cell, ','))
    {
        m_list.SetItem(i, j, LVIF_TEXT, cell.c_str(), NULL, NULL, NULL, NULL);
        j++;
    }		
    i++;
}

'\n' 와 ',' 로 구분하는 형태이다. 

 

 

참고로 sstream 헤더 안에 포함되어 있는 stringstream 류 클래스의 상속관계는 다음과 같다.

 

그 중에

istringstream 은 문자열을 파싱해서 다른 자료형으로 바꾸는데 쓰이고

ostringstream 여러 문자열을 조립하거나 다른 자료형을 문자열로 바꾸는데 쓰인다고 한다.

stringstream 은 공백과 '\n'을 제외한 문자열을 차례대로 빼내는 역할을 한다.