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
桂田 祐史