C++でコンソール画面をクリアする方法をわかりやすく解説
C++のプログラムからコンソール(ターミナル)画面に表示された内容を消去したい場合、system()関数を使ってOSのコマンドを実行するのが一般的な方法です。この関数は標準ライブラリ<cstdlib>で定義されており、引数として渡した文字列をシェルコマンドとして実行してくれます。
クリアに使うコマンドはOSによって異なります。
- Linux / macOS:POSIX環境で動作する「clear」コマンドを使用
- Windows:コマンドプロンプト用の「cls」コマンドを使用
Linuxでコンソールをクリアするサンプルコード
以下は、Linux環境で「clear」コマンドをsystem()関数に渡してコンソールをクリアする例です。
#include <iostream>
#include <cstdlib> // system() を使うために必要
using namespace std;
int main() {
cout << "これから画面をクリアします!" << endl;
system("clear"); // Linux/macOS の場合
// system("cls"); // Windows の場合はこちらを使用
cout << "空の画面" << endl;
return 0;
}実行結果
プログラムを実行すると、まず「これから画面をクリアします!」というメッセージが表示されます。
これから画面をクリアします!
その直後にsystem("clear")が実行され、それまで表示されていた内容がすべて消去されます。クリア後の画面には、次の行に出力されたテキストだけが残ります。
After(クリア後) 空の画面
注意点
system()関数はOSのシェルに依存するため、移植性(ポータビリティ)の面では注意が必要です。例えばLinux向けに書いた「clear」はWindowsでは動作せず、逆にWindowsの「cls」はLinuxでは機能しません。クロスプラットフォーム対応が必要な場合は、次のようにOSを判定してコマンドを切り替える方法があります。
#ifdef _WIN32
system("cls"); // Windows
#else
system("clear"); // Linux / macOS など
#endifまた、system()は外部プロセスを起動するためセキュリティ上の懸念がある点にも留意しましょう。学習用途や簡易ツールであれば十分実用的ですが、本格的なアプリケーションでは各OSが提供するネイティブAPI(WindowsならConsoles APIなど)の利用も検討すると良いでしょう。
-
C++とOpenCVを使って線を描画する方法
OpenCVで線を描画するには、始点と終点の2つの座標が必要です。さらに、線を描くためのキャンバス(描画領域)も用意しなければなりません。線を描画するために必要な要素OpenCVでは、キャンバスとして機能するのが行列(Mat)です。この行列に対して、線の始点と終点を定義し、加えて以下の情報も指定します。線の色線の太さつまり、OpenCVで線を描くには、行列・2つの点・色・線の太さという4つの要素を宣言しておく必要があります。必要なヘッダーファイルOpenCVで線を描画するには、<imgproc.hpp>ヘッダーをインクルードします。これは、line()関数がこのヘッダー内で定義され
-
C++プログラムから外部アプリケーション(メモ帳など)を起動する方法
この記事では、C++プログラムを使ってメモ帳(Notepad)などのサードパーティ製アプリケーションを起動する方法を解説します。実装は非常にシンプルで、コマンドプロンプトで使うコマンドをそのままC++から呼び出すだけで実現できます。ポイントとなるのは、標準ライブラリの system() 関数です。この関数の引数にアプリケーション名(コマンド)を文字列として渡すと、OSがそのコマンドを実行し、対応するアプリケーションが起動します。サンプルコード#include <iostream> using namespace std; int main() { cout <<