2012-03-05 16 views
0

私は現在のディレクトリに存在するファイルをプリントアウトします。 コンソール上にないテキストファイルで出力します。 私のプログラムは: -stdoutの代わりにファイルに書き込む

int main() 
{ 

     system("ls"); 
     return 0; 
} 

ありがとうございました!!!

+0

まあ一つの方法は、しばらくは「out.txtを」ファイルに書き込まれますリダイレクトした後、stdoutにファイル

###stdio.h ###FILE *freopen(const char *filename, const char *mode, FILE *stream); int main() { char outputFilename[] = "out.txt"; freopen(filename, "w", stdout) system("ls"); return 0; } 

にすべての出力を標準出力をリダイレクトするために別の関数がありますターミナルで './xyz> logfile.txt'を実行するだけです。 – noMAD

答えて

2

ちょうどシェルのリダイレクト機能を使用して、あなたはすでにsystem()を使用している、これはすでにプラットフォームに依存しているので - ちょうどあなたの出力を交換、これはあなたがファイルに書き込む方法ですつまり、

system("ls > /home/you/thefile"); 
+0

@RolandIllig、そうです! –

+0

これはfopen()よりも簡単ですが、Cでファイルに書き込む方法の標準的な例ではありません。 – dwerner

1

あなたがファイルにしたいものと一緒に。 他の人に言及すると、それをファイルにパイプすることができます。

FILE *ofp; 
char outputFilename[] = "out.txt"; 

ofp = fopen(outputFilename, "w"); 

if (ofp == NULL) { 
    fprintf(stderr, "Can't open output file %s!\n", 
      outputFilename); 
    exit(1); 
} 

fprintf(ofp, "ls"); 
fclose(ofp); 
0

関連する問題