このコードは、ファイルにインデックスを付け、各ファイル内の単語をトークン化する大きなコードの一部であるため、大量のファイルから特定の単語を検索できます。(グーグルのように)
この関数は、見つけたい単語をファイルで検索することになっています。しかし、私はそれがどのように機能するかを完全に理解していません!
誰かがこのコードが何をどのように行うのか説明してもらえますか?
さらに、いくつか質問があります。1) 「infile」とは正確には何ですか? 2) 組み込み関数 c_str() は何をしますか? 3) 変数「currentlineno」が 1 から始まるのはなぜですか? ファイルの最初の行が 0 から始まっていませんか? 4) ++x と x++ の違いは何ですか? 5) "currentlineno < lineNumber" と "currentlineno != lineNumber" の条件の違いは何ですか?
これはコードです:
void DisplayResult(string fileName, int lineNumber)
{
ifstream infile(fileName.c_str(), ifstream::in);
char line[1000];
int currentlineno = 1;
while(currentlineno < lineNumber)
{
infile.getline(line, 1000);
++currentlineno;
}
infile.getline(line, 1000);
cout<<endl<<"\nResult from ("<<fileName<<" ), line #"<<lineNumber<<": "<<endl;
cout<<"\t"<<line;
infile.close();
}