2011-05-10 3 views
1

문자열의 형식이 istringstream 인 객체가 있습니다. STRING,INT,INT,INT 예 : "name, 20,30,40" std : string 및 int와 같은 특정 유형의 변수에 값을 읽으 려합니다. 어떻게하면됩니까?C++ : stringstream에서 읽기

답변

3

게으른 방법 :

getline(stream, str, ','); 
char c; 
stream >> i1 >> c >> i2 >> c >> i3; 

가 어떤 합리적인 방법으로 형식 오류를 처리하지 못하기 때문에 그것은 "게으른"입니다.

더 똑똑한 방법은 쉼표로 분리하여 문자열 벡터 (필요에 따라 정수로 변환 할 수 있음)로 만들거나 boost.spirit와 같은 본격적인 구문 분석기를 사용합니다.

+0

이 오류를 쉽게 처리 할 수 ​​있습니다.'char c; 스트림 (Stream), 스트림 (Stream) >> i2 >> c && c == ','&& stream >> i3) .. if (getline (stream, str, ',') . –

+0

@ 토니 실제로, 그 오류 처리를 해결합니다. – Cubbi