Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2956] [질문] 이거 어떻게 푸나요?
문세영 [m20726] 1216 읽음    2003-09-13 01:21
<프로그램 개요>

string을 list에 token화 시켜서 입력하는 소스입니다.

ex) abc라는 입력 string이면 abc를 list의 첫번째 원소로 갖게 만듭니다.


질문 :
class의 멤버함수 Tokenize(char *pszInputQuery)에서 InpuLIst멤버변수의 값을 출력하면 제대로 나오는데

class 외부의 main()함수에서 객체를 선언해서 InpuLIst멤버변수의 값을 출력하려고 하면

쓰레기 값이 출력되네요. 벌써 5시간째 삽질 중이예요.

해결책 아시는 분 답변부탁드려요.


#include <list>
#include <IOSTREAM>

using namespace std;

class CQuery
{
public:
    // 사용자가 입력한 query
    list<char *> InpuLIst;

    CQuery(char *pszInputQuery)
    {
        Tokenize(pszInputQuery);
    }
   
    void Tokenize(char *pszInputQuery)
    {
        // token 별로 나누어서 list에 삽입
        // 각 문자를 하나의 string으로 만들어서 token화 시킨다.
        char c=NULL;
        char *pszTemp=&c;
        // 한 token의 길이
        int nTempLength=0;
   
        while(*pszInputQuery != NULL)
        {
            *pszTemp=*pszInputQuery;
            pszTemp++;
            nTempLength++;
   
            // 입력 query의 끝이면 거기까지의 string을 list에 token으로 삽입
            if(*(pszInputQuery+1) == NULL)
            {
                *pszTemp=NULL;
                // string의 처음 위치로 이동
                pszTemp=pszTemp-nTempLength;
                nTempLength=0;
                // list에 token으로 삽입
                InpuLIst.push_back(pszTemp);
               
                list<char *>::iterator i;
                for(i=InpuLIst.begin();i!=InpuLIst.end();i++)
                      cout<<*i<<endl;         // 출력결과 : abc 제대로 나옴
            }
            pszInputQuery++;
        }
    }
};


void main()
{
    char *pszInputQuery="abc";

    CQuery Query=CQuery(pszInputQuery);

    list<char *>::iterator i;
    for(i=Query.InpuLIst.begin();i!=Query.InpuLIst.end();i++)
        cout<<*i<<endl;           // 원하는 결과 : abc
                                  // 출력결과 : 쓰레기 값이 출력됨.
}

+ -

관련 글 리스트
2956 [질문] 이거 어떻게 푸나요? 문세영 1216 2003/09/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.