我正在用C.编写程序。该程序打印出当前目录中的文件。 我想要一些文本文件中的输出不在控制台上。 我的计划是: -
int main()
{
system("ls");
return 0;
}
提前致谢!!!
答案 0 :(得分:2)
由于您已经在使用system()
,并且这已经取决于平台,只需使用shell的重定向功能 - 即。,
system("ls > /home/you/thefile");
答案 1 :(得分: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);
答案 2 :(得分:0)
还有另一个将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;
}
重定向后到stdout的所有输出都将写入文件“out.txt”