C++ でプログラムを一時停止するさまざまな方法

この記事では、C++ でプログラムを一時停止するさまざまな方法について学習します。このメソッドまたは関数を使用すると、実行中に C++ プログラムを一時停止できます。

プログラムは、ユーザーが重要なデータを入力または読み取りたいときに一時停止するために使用されます。 Different Pause メソッドは、ユーザーがデータや指示を正しく読み、次のアクションを選択できるように、ある程度の時間を提供します。つまり、pause() メソッドにより、ソフトウェアがより読みやすく、使いやすくなります。

C++ は最も一般的で便利なプログラミング言語であるため、プログラムを一時停止するためのさまざまな方法と機能が提供されています。

以下は、C++ プログラムを一時停止するために使用されるいくつかのメソッドまたは関数のリストです。

<オール>
  • 一時停止 () 関数
  • getc() 関数
  • getchar() 関数
  • pause() 関数

    一時停止 () 関数は、現在実行中のプログラムを一時停止するために使用されるウィンドウ メソッドです。この方法はウィンドウ固有であり、Windows と DOS 以外のオペレーティング システムでは機能しません。
    一時停止 () 操作が終了すると、残りのプログラムの実行が続行されます。
    pause() メソッドは、ユーザーが Enter キーを押すまで、実行中のプログラムの実行を一時停止します。

    一時停止メソッドの仕組み

    ユーザーが一時停止メソッドを呼び出すと、プログラム コード全体が中断されます。次に、system () 関数がオペレーティング システムを呼び出します。シェルを開き、ライブラリ全体で一時停止メソッドを検索します。次に、リソースを割り当てて、pause() メソッドを実行します。次に、ユーザーの入力を待ち、操作が完了したらメモリを解放します。終了し、残りのプログラムを続行します。最後に、データを表示します。

    構文

    システム("一時停止")

    利点:

    pause() メソッドはシンプルでわかりやすい stnad() です。

    欠点:

    ポータブルではありません。
    この方法は、Linux または MacOS では機能しません。
    システム コールを作成し、余分なリソースをすべて処理します。

    以下のコード例に示すように、pause () メソッドを使用して C++ アプリケーションを一時停止できます。

    プログラム コード

    1.	//c++ program to pause program by pause() method
    2.	#include <iostream>
    3.	#include <cstdlib> 
    4.	using namespace std;
    5.	int main() 
    6.	{
    7.	for (int i=0; i<=10; i++) 
    8.	{
    9.	cout << "i = " << i << endl;
    10.	if (i == 5) {
    11.	// Call the pause command
    12.	cout << "Program Is Paused\n";
    13.	system("pause");
    14.	cout << "pause program terminated\n";
    15.	cout << "Resuming program \n";
    16.	}
    17.	}
    18.	return 0;
    19.	}
    

    出力:

    i = 0
    i = 1
    i = 2
    i = 3
    i = 4
    i = 5
    Program Is Paused
    pause program terminated
    Resuming program 
    i = 6
    i = 7
    i = 8
    i = 9
    i = 10
    

    説明

    ここで、i の値が 5 になると、pause メソッドが呼び出されます。ユーザーが Enter キーを押してプログラムを終了すると、再開プログラムが実行されます。

    さて、別の例を見てみましょう。
    この例では、特定の期間 (ミリ秒) で一時停止されたプログラムがあります。

    プログラム コード

    1.	#include <ctime>
    2.	#include <iostream>
    3.	void pause(int dur);
    4.	int main()
    5.	{
    6.	std::cout<<"Pausing for 5 second... \n";
    7.	pause(5);
    8.	std::cout<<". \n";
    9.	std::cout<<". \n";
    10.	std::cout<<". \n";
    11.	std::cout<<". \n";
    12.	std::cout<<". \n";
    13.	std::cout<<"DONE\n";
    14.	return 0;
    15.	}
    16.	void pause(int dur)
    17.	{
    18.	int temp = time(NULL) + dur;
    19.	while(temp > time(NULL));
    20.	}
    

    出力:

    Program is pausing for 5 second.. 
    .
    .
    .
    .
    .
    .
    DONE
    

    説明

    ここでは、プログラムを 5 秒間一時停止するために、一時停止メソッドに 1 ミリ秒の期間を渡しています。ここでは、実行を続行するためにユーザーが Enter キーを押す必要はありません。

    getchar ()

    getchar () メソッドは、pause () メソッドと同様に、pause C++ プログラムで使用されます。
    getchar() は C++ の組み込み関数です。これは get(stdin) 関数と同等です。 getchar () メソッドは、標準入力と標準出力から次の文字を読み取ります。
    ユーザーが「ENTER」以外のキーを押すと、システムは一時停止します。 「ENTER」を押すと、入力された行の文字が受け入れられます。
    この一時停止は終わりません。そのため、ユーザーは一時停止操作を実行する前にすべてのデータを読み取ることをお勧めします。

    構文:

    int getchar(void);

    戻り値のタイプ:

    この関数にはパラメーターがありません。
    int 値を返します。

    プログラム コード

    1.  //c++ program to pause program using getchar() method.
    2.	#include <iostream>
    3.	#include <vector>
    4.	#include <thread>
    5.	#include <chrono>
    6.	using std::cout; 
    7.	using std::cin;
    8.	using std::endl; 
    9.	using std::vector;
    10.	using std::copy;
    11.	using std::this_thread::sleep_for;
    12.	using namespace std::chrono_literals;
    13.	//driver code
    14.	int main()
    15.	{
    16.	int flag;
    17.	cout << "your program is paused!\n";
    18.	cout << "Press Enter to continue\n";
    19.	flag = getchar();
    20.	cout << "\nContinuing \n";
    21.	//make sleep program 200ms 
    22.	sleep_for(200ms);
    23.	cout << "..........\n";   
    24.	cout << "..........\n";
    27.	//this will print after 200ms or sleep period complete
    28.	cout << "\nProgram Completed!";
    29.	return EXIT_SUCCESS;
    30.	}
    

    出力:

    your program is paused!
    Press Enter to continue
    Continuing 
    ..........
    ..........
    Program Completed!
    

    説明:

    ここでは、プログラムを一時停止する getchar() メソッドを渡しています。ユーザーが「ENTER」キーを押すと、入力された行の文字が受け入れられます。スリープ期間が終了すると、リーミング プログラムの実行が開始されます。

    getc()

    getc() は、プログラムを一時停止するためにも使用されます。この関数は標準入出力ライブラリにあります。この関数は C ライブラリに属しています。
    この関数は、ストリームから次の文字を読み取ります。

    構文:

    getc(FILE *ストリーム)

    operation のストリーム タイプを識別するのは FILE オブジェクトのポインタです。ストリームには 3 つの標準ファイル ストリームが含まれます:

    <オール>
  • 標準入力
  • 標準出力
  • stderr
  • stdin は、ユーザーのキーボードから取得した入力を取得するために使用されます。
    ユーザーがプログラムの実行を継続するのを待たせます。

    プログラム コード

    1.	//c++ program to pause program using getc() method.
    2.	#include <iostream>
    3.	#include <vector>
    4.	#include <thread>
    5.	#include <chrono>
    6.	using std::cout; 
    7.	using std::cin;
    8.	using std::endl; 
    9.	using std::vector;
    10.	using std::copy;
    11.	using std::this_thread::sleep_for;
    12.	using namespace std::chrono_literals;
    13.	//driver code
    14.	int main()
    15.	{
    16.	int flag;
    17.	cout << "your program is paused !\n";
    18.	cout << "Press Enter to continue\n";
    19.	flag = getc(stdin);
    20.	cout << "\nContinuing .";
    21.	//make sleep program 50ms 
    22.	sleep_for(50ms);
    23.	cout << "..........";
    24.	//this will print after 50ms or sleep period complete
    25.	cout << "\nDone";
    26.	return EXIT_SUCCESS;
    27.	}
    

    出力:

    your program is paused !
    Press Enter to continue
    
    Continuing ...........
    Done
    

    説明

    ここでは、引数として get(stdin) を一時停止プログラムに渡しています。コンソール入力に対応します。ユーザーが Enter キーを押すと getc() 関数がそれを受け入れ、スリープ期間全体にわたってプログラムを一時停止します。スリープ期間が完了すると、完了メッセージを出力します。

    知識をチェックしましょう :

    質問 1

    一時停止に使用されない方法は次のうちどれですか?

    pause()getc(stdin)getchar()exit() プログラムを一時停止するために C++ で使用できるメソッドまたは関数は多数あります。 pause()、getchar()、etc(stdin) は、プログラムを一時停止するために使用されます。一方、exit は C++ プログラムを終了するために使用されます。

    質問 2

    pause () メソッドの欠点は何ですか?

    Pause () メソッドは、ウィンドウ固有で移植可能です。Pause () メソッドは、他のオペレーティング システムでは役に立ちません。Pause メソッドは、余分なメモリを割り当てるシステム コールを作成します。上記のすべて一時停止メソッドはウィンドウ固有のメソッドであるため、移植性がありません。 Linux や MacOS では動作しないためです。システムコールを作成し、追加のリソースを割り当てて操作を実行します。したがって、上記のすべてが正しい操作です。