C++ 基本入力/出力

こんにちは、将来的なC++プログラマーの皆さん!今日は、C++の入力と出力のワクワクする世界に飛び込んでいきます。まだ一度もコードを書いたことがないとしても心配しないでください。最も最初の部分から始めて、少しずつ進んでいきます。このチュートリアルの最後には、わずかなC++コードでどれだけ多くのことができるか驚きます!

C++ Basic Input/Output

I/Oライブラリヘッダファイル

画面にメッセージを表示したり、ユーザーから入力を読み取ったりする前に、必要なヘッダファイルをインクルードする必要があります。C++では、入力と出力操作はiostreamライブラリで処理されます。

まず、簡単な例を見てみましょう:

#include <iostream>

int main() {
// ここにあなたのコードを入力します
return 0;
}

これはC++プログラムの基本構造です。#include <iostream>の行は、コンパイラにiostreamライブラリをインクルードするよう指示し、入力と出力機能にアクセスできるようにします。

標準出力ストリーム(cout)

では、画面上にテキストを表示する方法を学びましょう。C++では、cout(「シー・アウト」と発音)を使用してコンソールに出力を送信します。

#include <iostream>
using namespace std;

int main() {
cout << "こんにちは、世界!";
return 0;
}

このプログラムを実行すると、「こんにちは、世界!」が画面に表示されます。それを分解してみましょう:

  • coutは標準出力ストリームオブジェクトです。
  • <<演算子はcoutにデータを送信するために使用されます。
  • 二重引用符の中のテキストは文字列リテラルと呼ばれます。

複数のアイテムもcoutを使用して印刷できます:

cout << "私の名前は" << "アリス" << "で、年齢は" << 25 << "歳です。";

これは次のように出力されます:「私の名前はアリスで、年齢は25歳です。」

新しい行の追加

出力後に新しい行に移動するには、endlマニピュレータまたは\n文字を使用できます:

cout << "最初の行" << endl;
cout << "二つ目の行\n";
cout << "三つ目の行" << '\n';

標準入力ストリーム(cin)

テキストを出力することができるようになったので、ユーザーから入力を取得する方法を学びましょう。cin(「シー・イン」と発音)をこの目的に使用します。

#include <iostream>
using namespace std;

int main() {
int age;
cout << "あなたの年齢は? ";
cin >> age;
cout << "あなたは" << age << "歳です!" << endl;
return 0;
}

この例では:

  • ユーザーの入力を保存するために整数変数ageを宣言します。
  • ユーザーに年齢を尋ねるためにcoutを使用します。
  • cin >> ageはユーザーから整数を読み取ってage変数に保存します。
  • 最後に、coutを使用して結果を表示します。

複数の入力も読み取ることができます:

string name;
int age;
cout << "あなたの名前と年齢を入力してください:";
cin >> name >> age;
cout << "こんにちは、" << name << "!あなたは" << age << "歳です。" << endl;

標準エラーストリーム(cerr)

coutは通常の出力には素晴らしいですが、時々エラーメッセージを表示する必要があります。そんなときにcerrが役立ちます。coutと似ていますが、エラーメッセージ用に特化されています。

#include <iostream>
using namespace std;

int main() {
int denominator = 0;
if (denominator == 0) {
cerr << "エラー:ゼロで割ることはできません!" << endl;
}
return 0;
}

cerrを使用することで、通常の出力とエラーメッセージを区別することができ、プログラムのデバッグには重要です。

標準ログストリーム(clog)

最後に、clogがあります。これはメッセージのログ記録に使用されます。cerrと似ていますが、出力がバッファリングされる可能性があるので、即座に表示されないことがあります。

#include <iostream>
using namespace std;

int main() {
clog << "これはログメッセージです。" << endl;
return 0;
}

実際のところ、clogcoutcerrほど頻繁に使用されませんが、存在を知っておくと良いです。

出力のフォーマット

基本的な部分をカバーしたので、出力をより見栄えよくフォーマットする方法をいくつか見ていきましょう。

フィールド幅の設定

setwマニピュレータを使用してフィールドの幅を設定できます:

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
cout << setw(10) << "名前" << setw(5) << "年齢" << endl;
cout << setw(10) << "アリス" << setw(5) << 25 << endl;
cout << setw(10) << "ボブ" << setw(5) << 30 << endl;
return 0;
}

これにより、整然とした出力が生成されます:

名前  年齢
アリス   25
ボブ   30

浮動小数点数の精度設定

浮動小数点数には、setprecisionを使用して精度を制御できます:

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
double pi = 3.14159265359;
cout << "デフォルトのπ:" << pi << endl;
cout << "πを4桁固定小数で表示:" << fixed << setprecision(4) << pi << endl;
return 0;
}

出力:

デフォルトのπ:3.14159
πを4桁固定小数で表示:3.1416

I/Oストリームオブジェクトとマニピュレータの概要

以下は、私たちが学んだI/Oストリームオブジェクトとマニピュレータの便利なテーブルです:

オブジェクト/マニピュレータ 説明
cout 標準出力ストリーム cout << "こんにちは";
cin 標準入力ストリーム cin >> 変数;
cerr 標準エラーストリーム cerr << "エラー!";
clog 標準ログストリーム clog << "ログメッセージ";
endl 行末 cout << "こんにちは" << endl;
setw フィールド幅設定 cout << setw(10) << "名前";
setprecision 浮動小数点数の精度設定 cout << setprecision(2) << 3.14159;

それでは、これでお終いです!C++の入力と出力の基本を学びました。練習は成功の鍵ですので、これらの概念を組み合わせてさまざまな方法で実験してみてください。異なる方法で組み合わせてみることで、すぐに複雑なプログラムを簡単に書けるようになります。

コーディングお楽しみください、そして出力が常に期待通りであり、入力が常に有効であることを願っています!

Credits: Image by storyset