fgets よりも速く入力行を読み取りますか?

どのプラットフォームを使用しているかはわかりませんが、UNIX に似ている場合は、read() システム コールを試してみるとよいでしょう。このシステム コールは、fgets() などの追加のバッファリング レイヤーを実行しません。これにより、速度がわずかに向上する可能性がありますが、逆に速度が低下する可能性があります。これを確認する唯一の方法は、実際に試してみることです。


<オール> <リ>

fgets_unlocked() を使用しますが、最初に何をするかをよく読んでください

<リ>

fgets() の代わりに fgetc() または fgetc_unlocked() を使用してデータを取得します。 fgets() を使用すると、データは 2 回メモリにコピーされます。最初は C ランタイム ライブラリによってファイルから内部バッファにコピーされ (ストリーム I/O はバッファリングされます)、次にその内部バッファからプログラム内の配列にコピーされます


ファイル全体を一度にバッファに読み込みます。

そのバッファから行を処理します。

それが最速のソリューションです。