IO
- istream: 入力操作を提供する入力ストリーム型。
- ostream: 出力ストリーム型。
- cin:標準入力からデータを読み込むistreamオブジェクト。
- cout: 標準出力にデータを書き出す ostream オブジェクト。
- cerr: 標準エラーにメッセージを書き込む ostream オブジェクト。
- 演算子 <<: istreamオブジェクトから入力データを読み込むために使用します。
- << />
- getline関数:与えられたistreamオブジェクトから1行のデータを読み込み、与えられたstringオブジェクトに格納します。
IOクラス
標準ライブラリで定義されているIO型
- iostream ヘッダーファイル:標準ストリーム、istream、ostream などからデータを読み書きします。
- fstream ヘッダーファイル: ファイル、ifstream、ofstream などからデータを読み書きします。
- sstream ヘッダファイル: 文字列、istringstream、ostringstream からのデータの読み取りと書き込み
IOオブジェクトのコピーや割り当てはできません
- IOオブジェクトはコンテナには存在できません。
- 正式なパラメータと戻り値の型もストリーム型にはできません。
- 正式なパラメータと戻り値の型は、一般にストリームへの参照です。
- IO オブジェクトの読み書きはその状態を変更するので、渡された参照と返された参照は const にはできません。
ストリームの条件付き状態 strmはIO型
strm:iostate //はマシンに依存しない型であり、条件付き状態を表現するための完全な機能を提供する。
strm:badbit //ストリームがクラッシュしたことを示す
strm:failbit //は、IO操作が失敗したことを示すために使用される。
strm:eofbit //は、ストリームがファイルの終端に達したことを示すために使用される。
strm:goodbit //は、ストリームがエラー状態でないことを示すために使用される。
s.eof() //ストリームsのeofbitが設定されていれば真を返す。
s.fail() //ストリームsのfailbitが設定されていれば真を返す。
s.bad() //ストリームsのbadbitが設定されていれば真を返す。
s.good() //ストリームsが有効な状態であれば真を返す。
s.clear() //ストリームsの条件付きステータス・ビットをすべてリセットし、ストリームの状態をvalidに設定し、voidを返す。
s.clear(flags) //ストリームsで指定された状態ビットをリセットしてvoidを返す。
s.setstate(flags) //与えられたフラグビットに基づいて、ストリームsの対応する状態ビットが返される void
s.rdstate() //戻り値はstrm型である。::iostate
出力バッファの管理
- 各出力ストリームは、出力コードを実行するためのバッファを管理し、テキスト文字列はすぐに出力されることもあれば、オペレーティングシステムによってバッファに保存され、後で出力されることもあります。
- バッファをフラッシュするには、以下のIOマニピュレータが使えます:
- endl: 改行文字を出力し、バッファをフラッシュします。
- flush: 文字を追加せずにストリームをフラッシュします。
- ends: ヌル文字をバッファに挿入してフラッシュします。
- unitbuf: 操作のたびにストリームにフラッシュを実行するように指示します。
- nounitbuf: 通常のバッファリングに戻ります。
cout<<"hi"<<endl;
cout<<"hi"<<flush;
cout<<"hi"<<ends;
cout<<unitbuf;
cout<<nounitbuf;
cin >> ival;//coutのバッファをフラッシュする。
ファイル入出力
- ヘッダーファイルfstreamは、ファイルIOをサポートする3つの型を定義しています:
- ifstream は与えられたファイルからデータを読み込みます。
- ofstreamは指定されたファイルにデータを書き込みます。
- fstream は、指定されたファイルに対してデータを読み書きします。
fstream固有の操作
fstream fstrm; //非束縛ファイルストリームを作成する。
fstream fstrm(s); //ファイルストリームを作成し、文字列またはcharポインタであるsという名前のファイルをオープンする。
fstream fstrm(s, mode); //前のコンストラクタと似ているが、指定されたモードでファイルをオープンする。
fstrm.open(s) //sという名前のファイルを開き、fstrmにバインドする。
fstrm.close() //fstrmにバインドされたファイルを閉じる
fstrm.is_open() //fstrmに関連付けられたファイルが正常にオープンされ、クローズされていないかどうかを示すbool値を返す。
ファイルモード
in //読み込みとして開く
out //書き込みとして開く
app //各書き込み操作の前にファイルの末尾に位置する。
ate //ファイルを開いた後、そのファイルの終端を即座に特定する。
trunc //ファイルの切り捨て
binary //バイナリモードでIO操作を行う。
string
- ヘッダーファイルstreamは、メモリIOをサポートするために3つの型を定義しています:
- istringstream文字列からデータを読み込みます。
- ostringstream文字列にデータを書き込みます。
- stringstreamは、指定された文字列を読み書きできます。
- stringstream固有の操作
sstream strm //バインドされていないstringstreamオブジェクトを定義する。
sstream strm(s) //でオブジェクトを初期化する。
strm.str() //strmが保持する文字列のコピーを返す。
strm.str(s) //sをstrmにコピーする。