2012-03-08 6 views
16

これはおそらく以前に要求されていましたが、これまでの回答を見つけることができませんでした。私はマルチライン入力でプログラムを起動しようとしています。毎回コマンドラインに入力したくないものがあります(おそらく私は間違いをするでしょう)。私はコマンドラインの引数を調べ、私はそこに自分の入力を貼り付けましたが、すべての行がコマンドであると解釈しました。場合にはそれがVisual StudioでデバッグするためのC++プログラムへのパイプ入力

入力を支援します。

8 
c j i b s x k j 
t a o a v y z l 
x r t s w o n m 
z y x e n s p r 
l l o b s t e r 
t g x a a a a a 
j p e l a k e k 
t r s l j e e e 
cat 
test 
baseball 
bake 
paste 
lobster 
stake 
zen 
locks 
rake 
gel 
slack 
jar 
dinosaur 
0 

答えて

37

を呼び出します。 「コマンド引数」プロパティ型で

デバッガが起動されたとき、またはあなたは、Visual Studio内のプログラムを起動したとき(ただしずに今、そのファイルが標準入力を介してプログラムに送られます
< "path/to/the/file" 

デバッガ)にCtrl-F5キーを押します。

テストファイルをプロジェクトと共に移動する場合は、VSマクロを使用してプロジェクトディレクトリなどを指定できます。

+1

さらに、私は通常、データファイルをプロジェクトの通常のファイルとして追加し、ビルドから除外します。次に、デバッガの引数を ' Joe

+0

私が正しく覚えていれば、これは文書化されていませんが動作します!特に驚くべき理由は、<は通常このシェルには存在しないシェルによって処理されるからです。 –

+1

注意すべきことは、VS2008でデバッガのリダイレクトが壊れていたことです。http://stackoverflow.com/a/3122074/12711 2008年のどのバージョンが壊れているのかはっきりしません。 SP1はWin7 x64上にありますが、バグレポートのコメントによれば、VS2008 SP1はそれを修正しない人もいます。 –

4

あなたはファイルとして入力を保存すること( "intput.txt" のように)。 は、その後のVisual Studioでプロジェクトのプロパティに移動し、「デバッグ」カテゴリを選択してファイルにデータを入れて

freopen("intput.txt", "r", stdin); 
//code to read from stdin. 
fclose(stdin);