stl 을 사용한 파서 구축하기 (펌)
C++ 2008. 1. 14. 09:33 |stl을 사용해서 문자열의 토큰을 처리 하는 클래스 입니다.
물론 펌 입니다.
출처 : http://blog.naver.com/inobae?Redirect=Log&logNo=90025826561
사용법은 아래와 같아요.
1. 파싱할 sample.txt 파일
2. 같은 형태의 포멧을 가진 txt 파일이 있을때
아래와 같이 우선 파일을 로드 합니다.
3. 해당 파일을 한줄 단위로 읽습니다.
그리고 나서 StringToKenizer 클래스를 사용해서 파싱합니다.
물론 펌 입니다.
출처 : http://blog.naver.com/inobae?Redirect=Log&logNo=90025826561
사용법은 아래와 같아요.
1. 파싱할 sample.txt 파일
슈퍼맨, 2000, 23.5
홍길동, 3000, 45,6
홍길동, 3000, 45,6
2. 같은 형태의 포멧을 가진 txt 파일이 있을때
아래와 같이 우선 파일을 로드 합니다.
ifstream file;
file.open("sample.txt");
file.open("sample.txt");
3. 해당 파일을 한줄 단위로 읽습니다.
그리고 나서 StringToKenizer 클래스를 사용해서 파싱합니다.
char buf[1024];
while(!file.eof()) // 다 읽었다면 빠져 나간다.
{
// 한줄당 읽어 들입니다.
file.getline(buf, 1024);
// 토큰 분리
StringTokenizer st = StringTokenizer(buf, ",");
// 파싱된 문자열을 해당 값에 따라서 저장하면 됩니다.
string name = st.NextToken();
double value0 = atof(st.NextToken().c_str());
double value1 = atof(st.nextToken().c_str());
}
while(!file.eof()) // 다 읽었다면 빠져 나간다.
{
// 한줄당 읽어 들입니다.
file.getline(buf, 1024);
// 토큰 분리
StringTokenizer st = StringTokenizer(buf, ",");
// 파싱된 문자열을 해당 값에 따라서 저장하면 됩니다.
string name = st.NextToken();
double value0 = atof(st.NextToken().c_str());
double value1 = atof(st.nextToken().c_str());
}