#この記事について
vscodeで競プロ環境を整えようと思い、拡張機能であるRunnerを使ってvscode上で入出力をできるようにしました。
備忘録として書いておきます.
###注意
・素人による記事なので信用しないで下さい。
・間違っている可能性がありますので騙されないようにして下さい。
#実行環境
Ubuntu16.04LTS(デュアルブート上)
VisualStudioCode 1.19.0
#準備
・vscodeのインストール
・C/C++,Runnerの拡張機能のインストール
・g++のインストール
#Hello World
普通に実行する場合
Ctrl + Shift + Bを押す
ビルドタスクの構成→tasks.jsonの作成
もう一度Ctrl+Shift+Bを押せばoutファイルが作成される
そして実行
ここでtasks.jsonは自分の環境に合った内容を書き込む。
C++の場合は以下のソースコードとなる。一応公式サイト貼っておく。
{
"version": "0.1.0",
"command": "g++",
"isShellCommand": true,
"showOutput": "always",
"args": ["-g", "main.cpp"]
}
しかし、こんな面倒なことは毎回したくない!
ということで、本題へ
###C++の標準入力
Runnerを使えばVscode上で出力可能になる。
今回はinput.txtから入力される値を渡して出力させる。
まずはshファイルを作成
#!/bin/sh
chmod a+x /home/username/Documents/cppio.sh
g++ -o out $1
./out < /home/username/Documents/mytask/input.txt
rm out
そこからユーザー設定に以下を上書き
{
"runner.languageMap": {
"cpp": "/home/username/Documents/cppio.sh"
}
}
以上が終われば後は
ctrl+shift+Rでinput.txtを読み込み結果が出力される。
はずだったがエラーが出てきた。
/bin/sh: /home/username/Documents/cppio.sh: Permission denied
Exited with status 126
以下のページで解決策を見つけた
https://qiita.com/dockurage/items/49e7295e7ff7458e26cd
それをTerminalに打ち込んで無事出力完了した。
が…
わざわざterminalにコマンドを打たないと(新規ファイルを作る場合)上のエラーが出るため多少の面倒臭さは残った。
この面倒臭さの解消法はあると思うのですが、疲れたのでこの辺で...