-1

プログラムの名前が以下のコードを使用してTest.exeである場合、引数を適切に設定するにはどうすればよいですか?|をチェックするために引数を追加する必要があると思っています。コマンドですが、リダイレクトコマンド ">"を使用する場合は、これを行う必要はありません。したがって、C ++でStreamリーダーを使用する必要があると思いますが、パイプで接続された任意の数の行にStreamリーダーを実装する方法が100%わかりません。

 using namespace System;   
 using namespace System::IO;
    int main(array<System::String ^> ^args)
    {
      // this doesn't work with piped in text
      Console::WriteLine(":::{0}:::", args[0]);
    }

コマンドプロンプトで「testa」と入力し、Enterキーを押します。

:::a:::


コマンドプロンプトで「echohelloworld|test」と入力します

:::hello world:::


これがWindowsコマンドプロンプトでどのように実装されるかの例は、findコマンドを使用することです。VisualStudio2012を使用してc++/ cliプログラムにこれを実装しようとしています。例: "help find":

If a path is not specified, FIND searches the text typed at the prompt
or piped from another command.
4

1 に答える 1

2

あなたのプログラムはパイプを認識しません。パイプは、シェルがstdout最初のプログラムからstdin2 番目のプログラムにリダイレクトするために使用するものです。これは、Test.exeを使用して入力を取得することを意味しますConsole::Readline

Console::WriteLine(":::{0}:::", Console::ReadLine());
于 2013-02-18T03:55:13.293 に答える