(小ネタ)VisualStudioでリダイレクト

プログラミングの講義では大体Linuxを使ってると思います。
ただ、Linux環境は慣れない(emacsは使いにくいし)ので、自分のPCでVisualStudioを使って綺麗な画面でのんびり課題をやりたい。
しかし、ここで一つ大きな問題が…!

わたし「入力に渡されたファイルを使ったり、結果を出力したファイルを提出する事になった場合、どうしよう…」

./program < input.txt

とか、

./program > output.txt

をVisualStudioでやる方法を知らない…詰んだ…大学のPCでやるしかない…大学行きたくない…
でも自分のPCにLinux導入とか正直良く分からないし課題のために入れるのもなぁ…
(情報系だしLinuxくらい慣れとけって?あっ、そうですね…仰る通りです…)

???「諦めるな!!!」

まずはVisualStudioを起動して目的のプログラムを書こう!
特に書く事も無いからn個のx,yを入力してその和を出力するだけのプログラムだ!
(C++で書かれてますが気にしないで下さい、cinが入力でcoutが出力です。それだけ)

ここからが重要!プロジェクトのプロパティを開く!

「構成プロパティ」の「デバッグ」から「コマンド引数」の欄を

< input.txt

とすべし!(「./program < input.txt」のリダイレクト部分をここに書く)
あと、一応左上の「構成」を「すべての構成」にしておこう。

そしたらinput.txtをこのプロジェクトのソリューションファイル(.sln)がある場所に配置すべし!
ファイルの中身は与えたい入力データです。講義でデータが与えられている場合それを配置します。

あとはいつも通り実行します。

ファイルからデータの入力に成功したぞ!!!拍手!!!!!
次は結果をファイルに出力しよう!さっきのコマンド引数の欄を

< input.txt > output.txt

に変更しよう!(手動で入力し結果をファイルに出力する場合は単に「> output.txt」としよう)

再び実行すると、

となります。ここで、プロジェクトのソリューションファイル(.sln)がある場所を見ると「output.txt」が見つかります。
中身を見るとちゃんと結果が出力されてます!拍手!!!

以上、VisualStudioを使ったリダイレクトでした。これでVisualStudioを使って課題ができるぞ!

※ただし.cファイルの提出を求められている場合に.cppファイルを提出しないように気を付けよう。
また、.cppで動くコードが.cで動かない場合もある気がするので(for文の中のint i=0とか怪しい気がする)そこは注意しよう。

あなたの課題ライフに潤いを(?)
(なんか不都合とかあったらほんとごめんなさい、許して下さい、勢いで書いたんです)