C で計算結果等を画面 (正しくは標準出力) に表示するには、 printf() を使うのが普通であるが、 C++ では、std::cout に « 演算子で送る。
Cでは |
#include <stdio.h> ... printf("こんにちは、世界\n"); |
C++では |
#include <iostream> ... std::cout << "こんにちは、世界" << std::endl; |
std:: を書くのが面倒ならば、 最初に using namespace std; としておけばよい。
C++では |
#include <iostream> using namespace std; ... cout << "こんにちは、世界" << endl; |
以下の話は using namespace std; と宣言してあると仮定して説明する。
C で整数型の式は %d, 浮動小数点数の式は %g などの書式を使ったが、C++ では
int i; double x; ... printf("i=%d, 2*x=%f\n", i, 2 * x); |
int i; double x; cout << "i=" << i << ", 2*x=" << 2 * x << endl; |
書式の指定をしないで済むのは便利なようだが、 本当に書式を指定する必要が生じた場合は、 少々面倒なことになる。
Cの場合 |
int i; ... printf("i=%4d\n", i); |
C++の場合 |
int i; ... cout << "i=" << setw(4) << i << endl; |
Cの場合 |
double pi; ... printf("pi=%20.15g\n", pi); |
C++の場合 |
#include <iomanip> // setprecision() に必要 double i; ... cout << "pi=" << setw(20) << setprecision(15) << pi << endl; |
(すごく面倒くさいけれど、僕のせいではないので、 石は投げないで下さい。)
/* * test1.cpp */ #include <iostream> // #include <stdio.h> に相当 #include <cmath> // #include <math.h> に相当 #include <iomanip> // setprecision() に必要 using namespace std; // これはいつもやっておくと便利かも int main(void) // C と同じ { double pi; pi = 4 * atan(1); cout << "123456789012345678901234567890" << endl; cout << setw(25) << setprecision(15) << pi << endl;//printf("%25.15g\n", pi); cout << setw(25) << setprecision(15) << scientific << pi << endl;//printf("%25.15e\n", pi); cout << setw(25) << setprecision(15) << fixed << pi << endl;//printf("%25.15f\n", pi); return 0; } |
実行結果 |
$ c++ test1.cpp ; ./a.out 123456789012345678901234567890 3.14159265358979 3.141592653589793e+00 3.141592653589793 $ |
大昔に書いたメモ: http://nalab.mind.meiji.ac.jp/~mk/labo/studying-C/Programing-in-C/node227.html