• [ETC] C++ 단어 하나씩 읽어 들이는 코드...2012.02.12 PM 05:25

게시물 주소 FONT글자 작게하기 글자 키우기

단어 하나씩 읽어 들이는 c++ 코드인데... 빈화면만 보여주네요.
뭐가 문제인지 내 머리로는 도저히 모르겠슴다.

뭐가 문제일까요? 능력자분들 답변좀 해주시면 감사하겠습니다.
아래는 문제의 프로그램 되것슴다.

그런데.. 이렇게 코드 직접 만들지 말고 뭔가 간단한 방법 없을까요? 스트링에서
단어 하나씩 읽어 들이는 기본 펑션 같은것도 있을법도 한데.. -,.-


.h 헤더파일.


#include <fstream>

using namespace std;

#ifndef _TEXT_FILE_READER_WRAPPER_
#define _TEXT_FILE_READER_WRAPPER_

const int nMaxWordLength = 32;

class TextFileReaderWrapper
{
private:
ifstream o-nputFileStream;

public:
TextFileReaderWrapper( char * pcFilename );
bool retrieveNextWord( char * pcNextWord );
// void retrieveAllWords( char * pcLastWord );
};

#endif


**********************************************************************
.cpp 파일.

#include <iostream>
#include <cstdlib>
#include "Text File Reader Wrapper.h"

using namespace std;

TextFileReaderWrapper::TextFileReaderWrapper( char * pcFilename )
{
o-nputFileStream.open(pcFilename);
if (!o-nputFileStream)
{
cout << "Error opening file: " << pcFilename << endl;
exit(1);
}
}


/
bool TextFileReaderWrapper::retrieveNextWord( char * pcNextWord )
{
int nPos = 0;
char ch;
bool bWordCompleted = false;


// and the file hasn't reached an end yet...
while ( !bWordCompleted && (ch = this->o-nputFileStream.get()) != EOF )
{
switch (ch)
{
case '\n': case '\r': case '\t': case ' ': // various whitespaces
if (nPos==0) continue;
pcNextWord[nPos] = '\0';
bWordCompleted = true;
// cout << "The next extracted word is: " << pcNextWord << endl;
break;

default:
pcNextWord[nPos] = ch;
nPos++;
break;
}
}


if (!bWordCompleted)
{
pcNextWord[nPos] = '\0';
cout << "The last extracted word is: " << pcNextWord << endl;
//since EOF has been reached, this is the last word in the file
return true;
}
else

return false;
//return bWordCompleted;
}

댓글 : 4 개
제가 C는 잘모르고 자바에서는 문자열 자르는 메서드 있던데 C도 있지 않을까요
마시멜로☆// 있을듯도 한데 관련 정보를 못찾겠네요, 간단하게 하나의 스트링 라인에서 단어만 추출한다고 생각해도 쓸수 있는 매소드를 못찾겠더군요. 이걸 일일이 따로 프로그램해줘야 되는건지.,.,
  • Vital
  • 2012/02/12 PM 06:07
c언어 함수 중에 strtok() 함수 검색해보시길...
Vital// 정보 감사합니다 찾아봐야 겠네요 ^^
친구글 비밀글 댓글 쓰기

user error : Error. B.