Stdout 写入文件而不是标准输出

Stdout 写入文件而不是标准输出,stdout,Stdout,我正在用C写一个程序。这个程序打印出当前目录中的文件。 我希望输出在一些文本文件中,而不是在控制台上。 我的计划是:- int main() { system("ls"); return 0; } 提前感谢 因为您已经在使用system(),而且这已经依赖于平台,所以只需使用shell的重定向功能即可——即 由于您已经在使用system(),并且这已经依赖于平台,所以只需使用shell的重定向功能即可——即 这就是写入文件的方式,只需将输出替换为文件中所需的内

我正在用C写一个程序。这个程序打印出当前目录中的文件。 我希望输出在一些文本文件中,而不是在控制台上。 我的计划是:-

int main()
{

        system("ls");
        return 0;
}

提前感谢

因为您已经在使用
system()
,而且这已经依赖于平台,所以只需使用shell的重定向功能即可——即


由于您已经在使用
system()
,并且这已经依赖于平台,所以只需使用shell的重定向功能即可——即


这就是写入文件的方式,只需将输出替换为文件中所需的内容即可。 正如另一个人提到的,你可以通过管道将其传输到一个文件中

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);

这就是写入文件的方式,只需将输出替换为文件中所需的内容即可。 正如另一个人提到的,你可以通过管道将其传输到一个文件中

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);

还有一个函数可以将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;
    }

重定向后所有输出到标准输出都将写入文件“out.txt”

还有一个函数可以将标准输出重定向到文件

###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”

一种方法是在终端中执行just do
/xyz>logfile.txt
另一种方法是在终端中执行just do
/xyz>logfile.txt
我同意这比fopen()简单,但这并不完全是C.-1中如何写入文件的标准示例。我同意这比fopen()容易,但这并不完全是C.-1中如何写入文件的标准示例。