名前空間
変種
操作

std::basic_ofstream

From cppreference.com
< cpp‎ | io
 
 
入出力ライブラリ
I/Oマニピュレータ
出力関数 (C++23)
C形式I/O
バッファ
(C++98/26*)
ストリーム
抽象化
ファイルI/O
basic_ofstream
文字列I/O
配列I/O
(C++98/26*)
(C++98/26*)
(C++98/26*)
同期出力
エラーカテゴリインターフェース
(C++11)
 
 
ヘッダ <fstream> で定義
template<

    class CharT,
    class Traits = std::char_traits<CharT>

> class basic_ofstream : public std::basic_ostream<CharT, Traits>

クラス テンプレート basic_ofstream は、ファイルベースのストリームに対する高レベルな出力操作を実装します。これは、ファイルベースのストリームバッファ (std::basic_filebuf) と、高レベルなインターフェース (std::basic_ostream) を接続します。

std::basic_ofstream の典型的な実装は、派生されていないデータメンバを1つだけ保持します。std::basic_filebuf<CharT, Traits> のインスタンスです。

cpp/io/ios basecpp/io/basic ioscpp/io/basic ostreamstd-basic ofstream-inheritance.svg

継承図

一般的な文字型のためにいくつかの typedef が提供されています

ヘッダ <fstream> で定義
定義
std::ofstream std::basic_ofstream<char>
std::wofstream std::basic_ofstream<wchar_t>

目次

[編集] メンバ型

メンバ型 定義
char_type CharT[編集]
traits_type Traits; Traits::char_typeCharT でない場合、プログラムは不適格となる。[編集]
int_type Traits::int_type[編集]
pos_type Traits::pos_type[編集]
off_type Traits::off_type[編集]
native_handle_type(C++26) TriviallyCopyable および semiregular である実装定義[編集]

[編集] メンバ関数

ファイルストリームを構築する
(public member function) [編集]
(デストラクタ)
[仮想] (暗黙的に宣言される)
basic_ofstream と関連するバッファを破棄し、ファイルを閉じる
(virtual public member function) [編集]
(C++11)
ファイルストリームを移動する
(public member function) [編集]
(C++11)
2つのファイルストリームをスワップする
(public member function) [編集]
基となる生のファイルデバイスオブジェクトを返す
(public member function) [編集]
基となる実装定義のハンドルを返す
(public member function) [編集]
ファイル操作
ストリームに関連付けられたファイルがあるかチェックする
(public member function) [編集]
ファイルを開き、ストリームに関連付ける
(public member function) [編集]
関連付けられたファイルを閉じる
(public member function) [編集]

[編集] 非メンバ関数

std::swap アルゴリズムを特殊化する
(function template) [編集]

std::basic_ostream から継承

メンバ関数

書式付き出力
書式付きデータを挿入する
(std::basic_ostream<CharT,Traits>のpublicメンバ関数) [編集]
非書式付き出力
文字を挿入する
(std::basic_ostream<CharT,Traits> の public メンバ関数) [編集]
文字ブロックを挿入する
(std::basic_ostream<CharT,Traits> の public メンバ関数) [編集]
位置付け
出力位置インジケータを返す
(std::basic_ostream<CharT,Traits> の public メンバ関数) [編集]
出力位置インジケータを設定する
(std::basic_ostream<CharT,Traits> の public メンバ関数) [編集]
その他
基礎となるストレージデバイスと同期する
(std::basic_ostream<CharT,Traits> の public メンバ関数) [編集]

メンバクラス

出力操作のためにストリームを準備する基本的なロジックを実装する
(std::basic_ostream<CharT,Traits> の public メンバクラス) [編集]

std::basic_ios から継承

メンバ型

メンバ型 定義
char_type CharT
traits_type Traits
int_type Traits::int_type
pos_type Traits::pos_type
off_type Traits::off_type

メンバ関数

状態関数
エラーが発生していないか、すなわちI/O操作が可能かを確認する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
ファイルの終端に達したかを確認する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
エラーが発生したかを確認する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
回復不能なエラーが発生したかを確認する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
エラーが発生したかを確認する (fail() のシノニム)
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
エラーが発生していないかを確認する (!fail() のシノニム)
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
状態フラグを返す
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
状態フラグを設定する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
状態フラグを変更する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
書式化
書式化情報をコピーする
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
フィル文字を管理する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
その他
例外マスクを管理する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
ロケールを設定する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
関連付けられたストリームバッファを管理する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
結びつけられたストリームを管理する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
文字をナロー化する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]
文字をワイド化する
(std::basic_ios<CharT,Traits> の public メンバ関数) [編集]

std::ios_base から継承

メンバ関数

書式化
書式フラグを管理する
(std::ios_base の public メンバ関数) [編集]
特定の書式フラグを設定する
(std::ios_base の public メンバ関数) [編集]
特定の書式フラグをクリアする
(std::ios_base の public メンバ関数) [編集]
浮動小数点数操作の小数点以下の精度を管理する
(std::ios_base の public メンバ関数) [編集]
フィールド幅を管理する
(std::ios_base の public メンバ関数) [編集]
ロケール
ロケールを設定する
(std::ios_base の public メンバ関数) [編集]
現在のロケールを返す
(std::ios_base の public メンバ関数) [編集]
内部拡張可能配列
[static]
pword()iword() のインデックスとして安全に使用できる、プログラム全体で一意な整数を返す
(std::ios_base の public static メンバ関数) [編集]
必要に応じてプライベートストレージのサイズを変更し、指定されたインデックスの long 要素にアクセスする
(std::ios_base の public メンバ関数) [編集]
必要に応じてプライベートストレージのサイズを変更し、指定されたインデックスの void* 要素にアクセスする
(std::ios_base の public メンバ関数) [編集]
その他
イベントコールバック関数を登録する
(std::ios_base の public メンバ関数) [編集]
C++ と C の I/O ライブラリが相互運用可能かどうかを設定する
(std::ios_base の public static メンバ関数) [編集]
メンバクラス
ストリーム例外
(std::ios_base の public メンバクラス) [編集]
標準ストリームオブジェクトを初期化する
(std::ios_base の public メンバクラス) [編集]

メンバ型と定数

説明
ストリームオープンモードの型

以下の定数も定義される

Constant 説明[編集]
app 各書き込みの前にストリームの末尾にシークする[編集]
2進 バイナリモードで開く[編集]
in 読み取り用に開く[編集]
out 書き込み用に開く[編集]
trunc オープン時にストリームの内容を破棄する[編集]
ate オープン直後にストリームの末尾にシークする[編集]
noreplace (C++23) 排他モードで開く[編集]

(typedef) [編集]
書式化フラグの型

以下の定数も定義される

Constant 説明[編集]
10進 整数I/Oに10進基数を使用する: std::dec を参照[編集]
8進 整数I/Oに8進基数を使用する: std::oct を参照[編集]
16進 整数I/Oに16進基数を使用する: std::hex を参照[編集]
basefield dec | oct | hex。マスキング操作に便利[編集]
left 左寄せ(右側にフィル文字を追加): std::left を参照[編集]
right 右寄せ(左側にフィル文字を追加): std::right を参照[編集]
internal 内部寄せ(内部の指定された点にフィル文字を追加): std::internal を参照[編集]
adjustfield left | right | internal。マスキング操作に便利[編集]
scientific 浮動小数点数型を科学表記法、または fixed と組み合わせた場合は16進表記で生成する: std::scientific を参照[編集]
fixed 浮動小数点数型を固定小数点表記法、または scientific と組み合わせた場合は16進表記で生成する: std::fixed を参照[編集]
floatfield scientific | fixed。マスキング操作に便利[編集]
boolalpha bool 型を英数字形式で挿入および抽出する: std::boolalpha を参照[編集]
showbase 整数の出力に対して数値基数を示す接頭辞を生成し、通貨I/Oで通貨記号を要求する: std::showbase を参照[編集]
showpoint 浮動小数点数の出力に対して小数点文字を無条件に生成する: std::showpoint を参照[編集]
showpos 非負の数値出力に対して + 文字を生成する: std::showpos を参照[編集]
skipws 特定の入力操作の前に先頭の空白をスキップする: std::skipws を参照[編集]
unitbuf 各出力操作の後に出力をフラッシュする: std::unitbuf を参照[編集]
uppercase 特定の出力操作で特定の小文字を対応する大文字に置き換える: std::uppercase を参照[編集]

(typedef) [編集]
ストリームの状態の型

以下の定数も定義される

Constant 説明[編集]
goodbit エラーなし[編集]
badbit 回復不能なストリームエラー[編集]
failbit 入出力操作が失敗した(書式化または抽出エラー)[編集]
eofbit 関連付けられた入力シーケンスがファイルの終端に達した[編集]

(typedef) [編集]
シーク方向の型

以下の定数も定義される

Constant 説明[編集]
beg ストリームの先頭[編集]
end ストリームの末尾[編集]
cur ストリーム位置インジケータの現在位置[編集]

(typedef) [編集]
イベントの種類を指定する
(enum) [編集]
コールバック関数の型
(typedef) [編集]

[編集] 備考

機能テストマクロ 規格 機能
__cpp_lib_fstream_native_handle 202306L (C++26) ネイティブハンドルサポート

[編集]

#include <fstream>
#include <iostream>
#include <string>
 
int main()
{
    std::string filename = "Test.b";
    {
        std::ofstream ostrm(filename, std::ios::binary);
        double d = 3.14;
        ostrm.write(reinterpret_cast<char*>(&d), sizeof d); // binary output
        ostrm << 123 << "abc" << '\n';                      // text output
    }
 
    // read back
    std::ifstream istrm(filename, std::ios::binary);
    double d;
    istrm.read(reinterpret_cast<char*>(&d), sizeof d);
    int n;
    std::string s;
    istrm >> n >> s;
    std::cout << " read back: " << d << ' ' << n << ' ' << s << '\n';
}

出力

read back: 3.14 123 abc
English 日本語 中文(简体) 中文(繁體)