C でテキスト ファイルの特定の行を検索
C の fstream ライブラリを使用すると、テキスト ファイルの読み書きが便利になります。ただし、特定の行に直接移動するのは難しい場合があります。この質問では、この問題に対する潜在的な解決策を検討します。
問題:
fstream を使用してテキスト ファイルを開いた場合、特定の行にジャンプする簡単な方法はありますか? 、8 行目など?
答え:
fstream はファイルのシーク ポインターを設定する方法を提供しますが、特定の行に直接ジャンプすることはできません。 。実際的なアプローチは、目的の行に到達するまですべての行を無視してファイルをループすることです。これを実現する方法は次のとおりです。
<code class="cpp">std::fstream& GotoLine(std::fstream& file, unsigned int num) { file.seekg(std::ios::beg); for (int i = 0; i < num - 1; ++i) { file.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); } return file; }</code>
この関数は、ファイルとシーク先の行番号を取得し、ファイル オブジェクトを返します。
例:
次の内容を含むテキスト ファイルについて考えます。
1 2 3 4 5 6 7 8 9 10
次の C プログラムは、GotoLine 関数の使用方法を示しています。
<code class="cpp">int main() { using namespace std; fstream file("bla.txt"); GotoLine(file, 8); string line8; file >> line8; cout << line8; cin.get(); return 0; }</code>
出力:
8
この例では、プログラムはテキスト ファイルの 8 行目を読み取り、内容「8」を出力します。
以上がC fstream を使用してテキスト ファイル内の特定の行に直接ジャンプできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。