0

これが私が持っているものです」

#!/bin/bash
MAX=3

for((ctr = 0;ctr < MAX; ++ctr))
do
    ./make.o  > out$ctr.txt
    output$ctr.txt 
done

make.o の出力を out$ctr.txt に入れたいのですが、make.o で cin を呼び出します。output$ctr.txt を入力として使用できますか? プログラムを書き直す必要があるため、入力リダイレクトは使用したくありません。

編集: < は使用したくありません。ファイル output$ctr.txt の内容が表示されるためです。内容ではなく、ファイルの実際の名前が必要です。

4

3 に答える 3

1

こんな感じですか

./make.o < output$ctr.txt  > out$ctr.txt

編集:名前が必要な場合は、次のようにします。

./make.o output$ctr.txt  > out$ctr.txt

または、これをecho名前に付けて、C++ から読み取ることができるようにしますcin

echo output$ctr.txt | ./make.o  > out$ctr.txt
于 2013-02-26T20:03:21.100 に答える
0

しかし、実際に欲しいのは次のとおりです。

./make.o output$ctr.txt >out$ctr.txt

whereoutput$ctr.txtは、プログラムへのコマンドライン引数です。

C++ プログラムを想定すると、 に言及しているためcin、次のようにコマンドライン引数を処理します。

int main(int argc, char *argv[])
{
    if (argc < 2) {
        // argv[0] usually contains the program name
        std::cerr << "missing argument\n"
                  << "Syntax: " << argv[0] << " input-file\n";
        return -1;
    }

    char *input = argv[1]; // = "output$ctr.txt"
    // ...
}

最初の推測

あなたがただ望んでいるように聞こえます。

./make.o  >out$ctr.txt <output$ctr.txt

>FILE *stdoutおよびに関連付けられているファイル記述子 STDOUT_FILENO をリダイレクトしますstd::cout

<FILE *stdinおよびに関連付けられているファイル記述子 STDIN_FILENO をリダイレクトしますstd::cin

于 2013-02-26T20:04:03.780 に答える
0

ループについてのコメントです。別のより簡単な書き方は次のとおりです。

#!/bin/bash

for i in {0..2}
do
    echo $i
done
于 2013-02-26T20:25:31.060 に答える