行単位でのファイル読み込みするには?


デメ  2005-01-12 21:48:34  No: 55988

いつもお世話になっております。デメです。
C言語でファイル操作について質問があります。ファイル(全角/カタカナ/半角/英数字) の内容を1行ずつ読み込み処理をしたいのですが、1行ずつ読み込むには、どのようにしたらよろしいのでしょうか?Webで調べたのですが、1行単位でファイルの内容を取得する関数は、見つかりませんでした。ご教授のほど宜しくお願い致します。

現状のソース
---
char sLine[256];

if ((fp = fopen("test.html", "r")) == NULL) {
  //エラー処理
}else {
  while (fgets (sLine, 256, fp) != NULL) {
    //処理
  }
}


シャノン  2005-01-12 22:52:31  No: 55989

fgets でいいんじゃないですか?


tetrapod  2005-01-12 23:27:20  No: 55990

任意長の行 (256 文字より長い行) を読み取る関数が無いということでしょうか。
標準 C ライブラリの範囲ではそんな便利なもの無いです。自作してください。

C++ なら std::getline あたり、というよりむしろ std::string 関係。

# そもそも C は便利さより実行コードサイズ/速度が優先されている言語なので
# 任意長の文字列を取り扱う・取り扱える便利さより
# 高速性やコンパイル時点でメモリ容量が見積もれる簡便さを優先してます。
# 高級アセンブラといわれる所以。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加