私はプログラミングは初めてではありませんが、C++ には比較的慣れていません。簡単なコンソール アプリケーションを配布して、学習しながら他の人を助けることができるようにしたいと考えています。私の大学のキャンパスにあるマシンの大部分は Windows ベースで、デフォルトで Borland コンパイラがインストールされています。g++ やその他のツールを使用して、Linux ベースのシステムで開発を行うことを好みます。したがって、ユーザーがEnterキーを押すまでプログラムを実行したままにするクロスプラットフォームの方法を追加したいと思います。これにより、ユーザーは、Windows のコンソールで実行するのではなく、exe をダブルクリックした場合でも、出力を表示できます。これを行うために、次のようなものを書きました。
#include <iostream>
using namespace std;
int main()
{
float val1, val2;
bool wait = true;
cout << "Please enter the first value to add: ";
cin >> val1;
cout << "Please enter the second value to add: ";
cin >> val2;
cout << "Result: " << val1 + val2 << endl << endl;
cout << "Press enter to exit...";
while (wait)
{
if (cin.get() == '\n')
wait = false;
}
return 0;
}
上記のコードを使用すると、プログラムは結果を表示した後に終了します。ただし、cin 呼び出しをコメント アウトすると、期待どおりに機能します。これにより、cin.getline が最後のデータ入力からエンター キーの押下を取得していると思われます。これは、ループのきつさによるものだと思います。C++ にはクロスプラットフォームのスリープ機能がないことを知ったので、それはオプションではありません。この作業を行うために他に何ができますか?