はじめに
VSCode上でC, C++, Java..etc を実行できるようにする機能拡張であるCode Runnerを使ってC++を書いていたのですが、キーボードから入力した値を使用する標準入力のプログラムを書いているときに値の入力ができてなくて困ることがありました。
環境
- 使用エディタ: Visual Studio Code v1.40.2
- Code Runner v0.9.15
- macOS Mojave v10.14.6
Code Runnerだと標準入力ができない?
Code Runnerはプログラムの実行結果をデフォルト設定だとReadOnlyである「出力」欄に表示するため、キーボードによる標準入力がそのままだと実行できません。
- 標準入力のプログラム(C++)
// 標準入力で入力した値の合計結果を表示するプログラム #include <iostream> using namespace std; int main() { int x, y; cout << "xとyを加算します。\n"; cout << "xとyの値:"; cin >> x >> y; // 標準入力でxとyに値を代入する cout << "x+y:" << x + y << "。\n"; // xとyの合計結果を表示する }
ためしに上記のC++の標準入力のプログラムをCode Runnerで実行してみましたが、「出力欄」が読み取り専用のため、標準入力をすることができません。
Code Runnerの出力をターミナルに切り替える
Code Runnerだと標準入力ができない!という上記の問題ですが、設定を変更してCode Runnerの結果を「出力」欄ではなくVSCodeのターミナルに出力するように設定すれば解決できます。
設定方法
その設定方法ですが、まずVSCodeのメニューから [Code] > [基本設定] > [設定] の順でクリックしてVSCodeの設定画面を開きます。
続いて開いた設定画面の検索欄にrunInTerminal
というワードを入力します。
そして、code-runner.runInTerminal
の設定をON(true
)にしてVSCodeを再起動すると設定完了です。
動作確認
上記の設定をした後に、再度プログラムを実行すると標準入力ができるようになっていることがわかります。