1

これを Code Review Beta に投稿しましたが、そこでの活動がはるかに少ないことに気付きました。

次のコードがあり、問題なく動作します。その機能は、ファイルから入力を取得して表示することです (取得されたことを確認するため)。私の仕事は、入力ファイルで特定の単語 (文字列) "abc" が何回見つかったかをカウントするプログラムを作成することです。

入力を文字列または配列/ベクトルとして保存し、各行を個別に保存する方が良いですか? a[1]、a[2] ect? おそらく誰かが、入力データをフィルタリングする方法を学ぶために使用できるリソースを教えてくれるかもしれません.

ありがとう。

input_file.open ("in.dat");
while(!input_file.eof()) // Inputs all the lines until the end of file (eof).
{
    getline(input_file,STRING); // Saves the input_file in STRING.
    cout<<STRING; // Prints our STRING.
}
input_file.close();
4

1 に答える 1

0

一度に1文字またはテキスト行を読み取るよりも、できるだけ多くのファイルをメモリに読み取る方が常に効率的です。ディスクドライブは、スピンアップしてセクターに再配置するのに多くの時間がかかります。ただし、ファイルからの読み取り回数を最小限に抑えることができれば、プログラムの実行速度は速くなります。

メモリは検索が高速です。

私の推奨事項は、ファイル全体、またはできるだけ多くのファイルをメモリに読み込んでから、メモリで「単語」を検索することです。英語では、単語にハイフン「-」と一重引用符「しない」を含めることができることを忘れないでください。単語を1行に分割したり、略語(ピリオド付き)を含めたりすると、単語認識が難しくなる可能性があります。

幸運を。

于 2013-02-25T06:41:05.233 に答える