我正在用C寫一個程序。這個程序打印出當前目錄下的文件。 我希望某些文本文件中的輸出不在控制檯上。 我的計劃是: - 提前寫入文件而不是標準輸出
int main()
{
system("ls");
return 0;
}
謝謝!
我正在用C寫一個程序。這個程序打印出當前目錄下的文件。 我希望某些文本文件中的輸出不在控制檯上。 我的計劃是: - 提前寫入文件而不是標準輸出
int main()
{
system("ls");
return 0;
}
謝謝!
既然你已經使用system()
,而這已經是平臺相關的,只是使用shell的重定向功能 - 即
system("ls > /home/you/thefile");
@RolandIllig,你說得對! – 2012-03-18 23:09:16
我同意這比fopen()更容易,但它並不完全是如何寫入C中的文件的規範示例。 – dwerner 2012-03-18 23:36:34
這是你如何寫一個文件,只需更換你的輸出與你想要的文件。 正如其他人提到你可以將它管到一個文件。
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);
有一種其他功能標準輸出重定向到一個文件
###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;
}
所有重定向輸出將被寫入到文件「out.txt」
那麼一個辦法就是一段時間後,標準輸出在終端中執行''./xyz> logfile.txt' – noMAD 2012-03-05 05:22:18