中安拓也のブログ

プログラミングについて書くブログ

【C++】[VSCode]Code Runnerで標準入力(cin)のプログラムを実行する

はじめに

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で実行してみましたが、「出力欄」が読み取り専用のため、標準入力をすることができません。

f:id:l08084:20191209183611p:plain
標準入力ができない

Code Runnerの出力をターミナルに切り替える

Code Runnerだと標準入力ができない!という上記の問題ですが、設定を変更してCode Runnerの結果を「出力」欄ではなくVSCodeのターミナルに出力するように設定すれば解決できます。

設定方法

その設定方法ですが、まずVSCodeのメニューから [Code] > [基本設定] > [設定] の順でクリックしてVSCodeの設定画面を開きます。

続いて開いた設定画面の検索欄にrunInTerminalというワードを入力します。

そして、code-runner.runInTerminalの設定をON(true)にしてVSCodeを再起動すると設定完了です。

f:id:l08084:20191209185046p:plain
code-runner.runInTerminalの設定にチェックを入れる

動作確認

上記の設定をした後に、再度プログラムを実行すると標準入力ができるようになっていることがわかります。

f:id:l08084:20191209203729p:plain
標準入力に成功

参考サイト

CodeRunnerの出力をターミナルに出す方法[VSCode]|てくてくぷれいす

Code Runner - Visual Studio Marketplace