したがって、いくつかのテキストファイルがあります。ファイル内で最もよく使われる10の文字と単語を調べる必要があります。私はベクトルを使用することを決め、ファイルから各文字をロードしました。ただし、空白と改行を含める必要があります。テキストファイルの内容を空白または改行をスキップせずにベクトルに読み込みます。
これは私の現在の機能
void readText(ifstream& in1, vector<char> & list, int & spaces, int & words)
{
//Fills the list vector with each individual character from the text ifle
in1.open("test1");
in1.seekg(0, ios::beg);
std::streampos fileSize = in1.tellg();
list.resize(fileSize);
string temp;
char ch;
while (in1.get(ch))
{
//calculates words
switch(ch)
{
case ' ':
spaces++;
words++;
break;
default:
break;
}
list.push_back(ch);
}
in1.close();
}
ですが、何らかの理由で、適切に文字のすべてを保持していないようです。私は、256のintがすべて0に設定されているプログラムの別の場所に別のベクトルを持っています。それは、その中のテキストを持つベクトルを通り、他のベクトルの0-256のint値で文字を集計します。しかし、それはうまくそれらを集計していますが、スペースと改行は問題を引き起こしています。これを行うより効率的な方法はありますか?
は直接、ベクターに::はifstream ::読み()プッシュ文字をはstdすることはできますか?あるいは、中間バッファーが必要ですか? –
blackpen
@blackpen以前はリサイズされたベクトルをバッファとして使います。 'push_back()'とは関係ありません。 –
ありがとうございます。どのようにファイルをベクトルに送るためにreadを使うのですか?私はまた、ランダムなサイズの複数のファイルを使用できるようにする必要があります –