0

端末から実行し、「error.log」などのファイルからいくつかの行を入力として受け入れるプログラムをCで作成しようとしています。どうやってやるの?

コマンド例: ./prog < error.log

4

2 に答える 2

0

入力リダイレクトにシェル構文を使用している場合 (つまり、< filename特別なことをする必要はありません)。stdin から読み取るだけです (たとえば、 orの代わりにプレーンgetsor )。scanffgetsfscanf

ファイルの名前を引数として取りたい場合は、コメント作成者が示したargvように、関数に渡された配列main()で index から始まるそれらの引数を見つけることができます1

于 2013-11-14T19:20:45.207 に答える
-2

これは開始する例です。

#include <stdio.h>

#define BLOCK_SIZE 256

int main(int argc, char** argv)
{
    char buf[BLOCK_SIZE];
    size_t bytes;

    while(!feof(stdin)) {
        bytes = fread(buf, 1, BLOCK_SIZE, stdin);
        fwrite(buf, 1, bytes, stdout);
    }
    return 0;
}

指定したファイルを出力するだけです./prog < filetoprint.txt

于 2013-11-14T19:33:40.597 に答える