Deprecated: Array and string offset access syntax with curly braces is deprecated in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/inc/init.php on line 542
ja:cpp:iostream [GiriWiki]

ユーザ用ツール

サイト用ツール


ja:cpp:iostream

入出力ストリーム


標準出力に出力

double d1 = 123.456;
double d2 = 234.567;
std::cout << d1 << " , " << d2 << std::endl;

この出力は、
123.456 , 234.567
となる。

std::cout << d1 << " , " << std::flush;
std::cout << d2 << endl;

でも上と同じ出力。

出力の精度、桁数指定をしたい

std::cout << std::setprecision(5) << d1 << " , " << std::flush;
std::cout << d2 << endl;

とすると、出力は
123.46 , 234.57
となる。

  • std::setprecision(n) で表示する全桁数(有効数字)を指定
  • 一度指定すると、その設定がそのまま引き継がれる。
std::cout << std::fixed << std::setprecision(1) << d1 << " , " << std::flush;
std::cout << d2 << endl;

とすると、出力は
123.5 , 234.6
となる。

  • std::fixed と std::setprecision(n) を合わせて使うことによりnは”小数点以下の桁数”の意味になる。
  • これまた引き継がれる。

フォーマット指定

  • デフォルトではフォーマット指定はfloat (%f)
  • 以下、std::は省略(using namespace std)
  • #include <iomanip> が必要(全部ではないかも)
stdio iostream 出力結果
整数10進法表記 printf(“%d”,123); cout « dec « 123 « endl; 123
固定小数点表記 printf(“%f”,1.2345); cout « fixed « 1.2345; 1.234500
printf(“%.2f”,1.2345); cout « fixed « setprecision(2) « 1.2345; 1.23
指数表記 printf(“%e”,1.2345); cout « scientific « 1.2345; 1.234500+e000
printf(“%.2E”,1.2345); cout « scientific « setprecision(2) « uppercase « 1.2345; 1.23+E000
0埋め printf(“%05d”,123); cout « setfill(’0′) « setw(5) « right « 123; 00123
左寄せ printf(“%5d”,123); cout « setw(5) « left « 123; 123
右寄せ printf(“%5-d”,123); cout « setw(5) « right « 123; 123
正号表示 printf(“%+d”,123); cout « showpos « 123; +123
  • デフォルトに戻すには、
cout << resetiosflags(ios_base::floatfield);

のようにする。


フォーマット指定子

フォーマット指定子 説明
%c char 文字
%s char* 文字列
%d int,short 10進法整数
%u unsigned int, unsigned short 符号無し10進法整数
%f float 浮動小数点
%lf double 倍精度浮動小数点
%e float 浮動小数点を指数表示
%g float 浮動小数点を最適表示
%o int など整数系全般 整数を8進法表示
%x int など整数系全般 整数を16進法表示
  • %ld, %lu, %lo, %lx などもそれぞれ倍精度として用意されている
  • 入力(ファイル読込)時に指定子を使うとき、%*f のように%の直後に*を入れると、そのデータは、変数に格納されずに読み飛ばされる
ja/cpp/iostream.txt · 最終更新: 2015/01/13 01:29 by kota