C++の勉強を始めました。ファイルの入出力の仕方として

ifstream を使う方法を学んでいます。
ifstream クラスのメンバ関数を調べたいのですが
英語のサイトしか見つかりません。何故でしょうか?
ファイルの入出力の方法は他にもあるようですが、
何故種類が沢山あるのでしょうか?ご教授お願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/05/09 00:30:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:tera-p No.1

回答回数92ベストアンサー獲得回数21

ポイント27pt

ストリームまわりのリファレンスをお探しでしょうか.たしかに,あまり Web で日本語のまとまったリファレンスってないですね.

たとえば,http://docs.sun.com/app/docs/doc/805-7889/6j7duaiiq?l=ja&a=view あたりに日本語で読める情報があります(詳細については,man istream ないし man fstream しなさい,という書き方になってますが).

C++にファイル入出力の方法が複数あるのは,

  • もともと better C として開発されているので,C のファイル入出力 (fopen() など) が使える.
  • 入出力を便利にするために stream クラスが用意された.
  • が,それがかなり中途半端な代物だった(実は使いこなそうとすると結構面倒)ので,Boost など「より便利な」クラスライブラリも提供されるようになった.

というあたりが背景だと思います.

id:I_I_I_I_eb1

回答有難うございます。

>C のファイル入出力 (fopen() など) が使える

↑を使う人が多いんですかね。

2008/05/03 22:56:42
id:blanketsky No.2

回答回数5ベストアンサー獲得回数1

ポイント27pt

ifstream のメンバ関数のほとんどは istream から継承したものです (独自のメンバ関数は open, close, is_open, rdbuf くらいです)。

なので、istream について詳しく書かれたものを探すと良いのではないでしょうか。

英語のサイトでよろしければ、http://www.cplusplus.com/reference/iostream/ あたりが iostream ライブラリ全体の関係について良くまとまっていると思います。

id:I_I_I_I_eb1

回答有難うございます。

日本にも沢山のC++プログラムはいると思うのですが何故情報が少ないんですかねえ。

マイクロソフトのHPにもないですし。

2008/05/03 22:58:25
id:blanketsky No.3

回答回数5ベストアンサー獲得回数1

ポイント26pt

> 日本にも沢山のC++プログラムはいると思うのですが何故情報が少ないんですかねえ。


上記の回答に補足させていただきますと

ifstream は istream に毛が生えたようなものなので、

あえて ifstream 単体を取り上げて解説する必要があまり無いのではないかと思います。


fstream を機能制限したもの、という見方の方が良いかもしれません。

http://www.geocities.jp/ky_webid/cpp/library/033.html

http://www.kab-studio.biz/Programing/Codian/iostream/04.html など、

fstream の解説の入力部分だけを見れば、そのまま ifstream になります。


stream系の各クラスは階層が若干込み入っていて分かりづらいですが、

メソッドのほとんどがiostreamクラスのメソッドに含まれるため

  • iostreamクラスの各メソッドの挙動
  • 各クラスの継承関係

の2つを把握すれば個々のクラスの挙動はおおよそ掴めるかと思いますし、

そのような解説のスタイルを採っているところが多いようです。


iostream や fstream の解説ならば日本語の情報もそれなりに見つかるのではないでしょうか。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません