名前空間
変種
操作

std::basic_ostream<CharT,Traits>::write

From cppreference.com
< cpp‎ | io‎ | basic_ostream
 
 
 
 
basic_ostream& write( const char_type* s, std::streamsize count );

UnformattedOutputFunction として動作します。 sentry オブジェクトを構築してチェックした後、最初の要素が s によって指されている文字配列から successive な位置の文字を出力します。次のいずれかが発生するまで、文字が出力シーケンスに挿入されます。

  • ちょうど count 文字が挿入される
  • 出力シーケンスへの挿入が失敗する (その場合、setstate(badbit) が呼び出されます)。

目次

[編集] パラメータ

s - 書き込む文字文字列へのポインタ
count - 書き込む文字数

[編集] 戻り値

*this

[編集] 例外

failure: エラーが発生した場合(エラー状態フラグが goodbit ではない)で、exceptions() がその状態に対してスローするように設定されている場合。

内部操作が例外をスローした場合、それはキャッチされ、badbit が設定されます。exceptions()badbit に対して設定されている場合、例外は再スローされます。

[編集] 注記

この関数は、フォーマットされた operator<< とは異なり、signed char または unsigned char の型に対してオーバーロードされていません。

また、フォーマットされた出力関数とは異なり、この関数は失敗時に failbit を設定しません。

非変換ロケール (デフォルトロケールは非変換) を使用する場合、std::basic_ofstream のこの関数のオーバーライダは、ゼロコピーバルク I/O のために最適化される可能性があります (たとえば、std::streambuf::xsputn をオーバーライドすることによって)。

[編集]

この関数は、オブジェクト表現、つまりバイナリ出力を出力するために使用できます。

#include <iostream>
 
int main()
{
    int n = 0x41424344;
    std::cout.write(reinterpret_cast<char*>(&n), sizeof n) << '\n';
 
    char c[] = "This is sample text.";
    std::cout.write(c, 4).write("!\n", 2);
}

実行結果の例

DCBA
This!

[編集] 関連項目

文字データを挿入する、または右辺値ストリームに挿入する
(function template) [編集]
文字を挿入する
(public member function) [編集]
English 日本語 中文(简体) 中文(繁體)