2009-06-06 3 views
2

誰かが知っている.. NetbeansでSTDINにファイルを読む方法。
私のプログラムはNetbeansに問題があります。プログラムは次のように動作します。NetbeansのSTDIN

./myprog < in.txt 

これはC++プロジェクトです。 すべてのアイデア?

編集:私はネットビーンをセットアップしてプログレムを持っています。どこで言うことができます:このファイルを読んで/使用しますか? コンソール上で正常に動作します!

+0

stdinからプログラムを読み込む際に問題がありますか?あるいは、上記のようにプログラムを起動するためにnetbeansを設定するのに問題がありますか? – Joey

+0

ネットビーンの設定に問題があります。 ターミナルでは、正常に動作します。しかし、私はどのようにネットビーンズに同じことを言いますか? – n00ki3

答えて

3

私は、NetBeansに入力をプログラムにパイプする(その機能はシェルによって処理される)ように頼む方法はないと思います。 IDEでプログラムをテストまたはデバッグする場合は、ファイル名をパラメータとして指定するか、ファイル名が指定されていない場合は標準入力に戻すことをお勧めします。次に、プロジェクトの実行構成を調整し、テストファイル名を引数として指定できます。

実行コンフィギュレーションで "< file"を使用しようとすると、それがシェルに傍受されないため、プログラムに直接渡されます。

[編集]私は道が分かりましたが、少し弱いです。

NetBeans(少なくともMacでは)ホームディレクトリの.netbeansフォルダの下にあるdorun.shというスクリプトを使ってC++プログラムを実行します。これは、このような終わり近くの行が含まれています

「$のPGM」「$ @を」

引用符引用符を削除(と受け入れることができるように、プロジェクトのプロパティで<オペレータの使用を逃れます影響)、またはそれらの間の<を含める:

"$のPGM" <

"$ @" と単純に引数としてファイル名が含まれます。

引数がどこにあるのか分からない場合は、ファイルメニューのプロジェクトプロパティにあります。

WindowsでNetBeansを使用している場合は、プログラムを起動するためにどのような種類のスクリプトがあるかはわかりません。また、外部端末の代わりに出力ウィンドウを使用する場合(この設定は同じウィンドウにあります)、これは機能しません。

[編集編集]これは、プログラムをデバッグしようとするとうまくいかない場合があります。おそらくファイルや標準入力からの読み込みに対処するためにコードを修正するのが最も良いでしょう。

0

NetBeans IDEの標準の標準ライブラリクラスにアクセスできますか?

std::string line; 
while (std::getline(cin, line)) 
{ 
    // do something with line... 
} 
0

は、私の知る限りでは、NetBeansは唯一のIDEであり、それは、いくつかの異なるコンパイラを使用するように設定することができます。その場合は、通常、あなたはSTDINがcinインスタンスを使用してアクセスします。あなたのコードは、コンパイラが期待するものに従ってコード化する必要がありますが、標準ライブラリを使用する場合は問題はありません。

3

私はこれを処理する最良の方法に関して(ファイル名をパラメータとして、何も指定されていない場合はstdinに戻る)JimGに同意します。また、このように、メイクフラグを経由して、あなたのコードにフラグを渡し、条件付きでコード内でfreopenは使用することができます。

#ifdef NETBEANS 
    freopen("input.txt", "r", stdin); 
#endif 

を次にプロジェクトのプロパティで - >ビルド - >確認 - >コマンドを構築し、あなたが何かを行うことができます以下のような:私はいつもの同じリサイクルメイクファイルを使用するので、私はこの方法を使用

.cpp.o: $< 
    $(CC) $(DEBUG_FLAGS) $(CFLAGS) $(INCLUDES) -o [email protected] $< 

${MAKE} -f Makefile "DEBUG_FLAGS=-DNETBEANS" 

あなたのMakefileは明らかに、DEBUG_FLAGSに沿って通過するように、このような何かを持っているでしょうそれはコード自体の3行の修正です。私は、cmdlineを解析することはすべて1つの場所にあると思うが、それぞれの場所にあると思う。

0

実際には、C++プロジェクトのUbuntu Linuxでnetbeans 8と同じ問題がありました。あなたが入力パラメータとしてファイルを渡すことができ

は今、あなたはちょうどそれを正しい方法で行う必要があります。コンマの間に第二部がへのあなたの完全なパスです

"${OUTPUT_PATH}" "./main"< "/home/user/projects/C/tests.in" 

File->Project Properties->Run->Run Command の下

これを追加ファイル。 デバッグ時に使用されていても非常に便利です。