0

このプログラムをそのまま実行すると、スペースなしでテキストが返されます。個々の単語を個別に認識させるにはどうすればよいですか?

  int main()

{
    ifstream input1;
    input1.open("Base_text.txt");

    vector<string> base_file;
    vector<int> base_count;


    if (input1.fail())
    {
        cout<<"Input file 1 opening failed."<<endl;
        exit(1);
    }

    make_dictionary(input1, base_file, base_count);


}

void make_dictionary(istream& file, vector<string>& words, vector<int>& count)
{


    string word;
    int i=0;

    while (file>>word)
    {
        words.push_back(word);
        cout<<words[i];
        i++;
    }


    for (i=0; i<words.size(); i++)
    {
        if ((words[i+1]!=words[i]))
            {
                count.push_back(i);

            }
    }


}

現在の出力:

Thisissomesimplebasetexttouseforcomparisonwithotherfiles.Youmayuseyourownifyousochoose;yourprogramshouldn'tactuallycare.Forgettinginterestingresults,longerpassagesoftextmaybeuseful.Intheory,afullnovelmightwork,althoughitwilllikelybesomewhatslow.

期待される出力では、各単語の間にスペースが必要です。この後、単語をアルファベット順にソートできるようにする必要があるため、出力以外にも修正が必要です。

4

2 に答える 2

0

これを変える

cout<<words[i];

これに

cout << words[i] << ' ';

あなたのプログラムは、あなたが指示したことを正確に実行することを忘れないでください。スペースを出力するように指示しないと、出力されません。

于 2013-04-27T20:05:55.993 に答える
0

で単語を出力するときは、スペースを含む文字列を追加する必要がありますcout

cout << " " << words[i];
于 2013-04-27T20:06:34.610 に答える