私はCでファイルストリームを持っており、ファイルを繰り返し処理することなく、その中にいくつの行があるか知りたいと思っています。各行は同じ長さです。私はどうすればこれについて行くことができますか?cファイルストリーム内の行数
0
A
答えて
3
:
fgets
を行うと、1行がfseek
を使用してファイルのサイズを見つけて、ftell
fseek(fp, 0, SEEK_END); size = ftell(fp);
除算でどのくらい見つけます線のサイズで
off_t
で動作するfseeko
とftello
を使用することもできます。
0
get the total sizeにファイルstat()
を1行読み、最初の行の長さで合計サイズを分割します。
stat()
を使用する代わりに、ファイルの末尾にfseek()
を付けて、ftell()
を使用してサイズを取得することもできます。
0
ftell()
とし、行の長さで除算します。
2
すべての行の長さが同じであると考えることが安全であれば、最初の行を読み、長さを取得してからファイルサイズを取得し、行の長さでファイルサイズを分割するだけです。
固定幅エンコーディング(ASCII-7、さまざまな8ビットANSIエンコーディング、UTF-32)でのみ機能します。可変長エンコーディング(UTF-8など)の場合、文字列の長さがバイト数に必ずしも比例しないため、ファイル全体をスキャンする必要があります。
関連する問題
- 1. C++ 11ファイルストリーム
- 2. C++ファイルストリームのオープンモードのあいまいさ
- 3. 読み書き用のC++ファイルストリーム
- 4. のVisual C++エラー閲覧ファイルストリームと文字
- 5. Cファイルストリーム、最初に追加する
- 6. フレックスウェブアプリケーションのファイルストリーム
- 7. C#DataTable Count範囲内の行数
- 8. MVCファイルストリーム複数呼び出し
- 9. PROLOGファイルストリームの操作。
- 10. ファイルストリーム処理は
- 11. トークンとファイルストリーム
- 12. ファイルストリーム、ロックとシリアル化
- 13. !=演算子とファイルストリーム
- 14. 一時ファイルストリームでの処理
- 15. SQL Server 2008のファイルストリーム:エラーFILESTREAM
- 16. メモリストリームとファイルストリームの違い
- 17. シート内の行数
- 18. ファイルストリームからunsigned charを読み取るC++
- 19. asp.net c#ファイルストリームを画像に変換する
- 20. C++でファイルストリームを再利用しますか?
- 21. 単一ループ(System.Windows.Shapes)内の複数の行C#
- 22. T-SQLファイルストリーム有効データベース
- 23. ファイルストリームをSystem.Diagnostics.Process.Startに渡す
- 24. メモリ消費量javaファイルストリーム
- 25. Javascript var内のC#関数Javascript内
- 26. 目的C - Coreテキスト、行内の文字数?
- 27. 関数内のC++配列
- 28. c内のscanf()関数
- 29. C++:Extern Cネームスペース内の関数
- 30. oracle内のグループ内の行数nnn
実際には 'stat'(または実際には' fstat')も使用しますが、移植性がありません。 –