2013-06-03 3 views
0

그래서 Stdin에서 텍스트 파일을 읽고 '단어 목록'wl에 추가해야하는 프로그램의이 부분을 완성하려고합니다. 나는 텍스트 파일에서 읽는 방법을 얻지 만, 나는 이해할 수 있다면 '단어'를 목록에 추가하는 법을 모른다. 그래서 여기에 내가 무엇을 가지고 :텍스트 파일을 읽고 목록에 문자를 추가 하시겠습니까?

소스는 텍스트에서 읽은 단어의 수를 결정하고 화면에 인쇄되는 길이를 결정하는 배열입니다.

내가 무엇부터 시작해야하는지에 대한 아이디어가 있습니까?

편집 : 여기에 대한 구현을 쓰고 있어요 프로그램입니다 :

#include <iostream> 
#include <string> 
#include <vector> 
#include "ngrams.h" 
void help(char * cmd) { 
    cout << "Usage: " << cmd << " [OPTIONS] < INPUTFILE" << endl; 
    cout << "Options:" << endl; 
    cout << " --seed RANDOMSEED" << endl; 
    cout << " --ngram NGRAMCOUNT" << endl; 
    cout << " --out OUTPUTWORDCOUNT" << endl; 
} 
string source[250000]; 
vector<string> ngram; 
int main(int argc, char* argv[]) { 
    int n, outputN, sl; 
    n = 3; 
    outputN = 100; 
    for (int i = 0; i < argc; i++) { 
    if (string(argv[i]) == "--seed") { 
     srand(atoi(argv[i+1])); 
    } else if (string(argv[i]) == "--ngram") { 
     n = 1 + atoi(argv[i+1]); 
    } else if (string(argv[i]) == "--out") { 
     outputN = atoi(argv[i+1]); 
    } else if (string(argv[i]) == "--help") { 
     help(argv[0]); 
return 0; } 
    } 
    fillWordList(source,sl); 
    cout << sl << " words found." << endl; 
    cout << "First word: " << source[0] << endl; 
    cout << "Last word: " << source[sl-1] << endl; 
    for (int i = 0; i < n; i++) { 
    ngram.push_back(source[i]); 
    } 
    cout << "Initial ngram: "; 
    put(ngram); 
    cout << endl; 
    for (int i = 0; i < outputN; i++) { 
    if (i % 10 == 0) { 
    cout << endl; 
} 
//put(ngram); 
//cout << endl; 
cout << ngram[0] << " "; 
findAndShift(ngram, source, sl); 
} } 

내가 참조로 사용하기로되어있어이 있지만, 너무 많이 도와 나던.

+1

두 기능 간의 관계가 명확하지 않습니다. 그리고 당신이 source와 sourceLength로하고 싶은 일에 대해서는 잘 모르겠습니다. –

+0

@Sceptical Jule 나는 그들과 함께해야 할 일에 약간 당황 스럽다. 다음은 내가해야 할 일의 헤더에 대한 설명입니다. 'string getWord(); // 표준 입력에서 공백으로 구분 된 단어를 반환합니다. ' 'void fillWordList (string source [], int & sourceLength); // 표준 입력에서 텍스트 파일을 읽고 // 공백으로 분리 된 단어를 단어 목록 wl'에 추가하십시오. – user2421178

답변

1

원시 배열을 선언하면 배열의 크기가 컴파일 타임 상수가되어야합니다. 대신 std::vector 또는 적어도 std::array을 사용하십시오. 그리고 기입 하시려면 source을 참고로 보내주십시오.

관련 문제