- 786 名前:はちみつ餃子 mailto:sage [2024/02/10(土) 14:30:14.27 ID:XEL9SE6k.net]
- >>785
・ 直接的に入出力を司るのはバッファと呼ばれるオブジェクト (たとえば basic_streambuf など) ・ ストリームには対応するバッファがセットされている (あまりバッファを直接には操作しない) ・ 書式はストリームの状態として保持されている つまり同じバッファ (出力先) に対して異なるストリームをかぶせることが出来る。 一時的にだけ書式を変更するのであれば一時的なストリームを作るという方法がとれる。 コードで例を出すならこんな感じ。 #include <iostream> int main() { std::cout << 0.1 << std::endl; { std::ostream temp(std::cout.rdbuf()); temp.precision(30); temp << 0.2 << std::endl; temp << 0.3 << std::endl; } std::cout << 0.4 << std::endl; } 書式をストリームの状態として持つのがすこぶる不格好だというのは C++er にとっての共通認識になっていてようやく C++23 から std::print が導入されたので モダンな C++ を使えるならそっちを使ったほうが良い。 std::format なら C++20 から。
|

|