gpt4 book ai didi

c - 如何使函数 printf 将其输出输出到文件或控制台上?

转载 作者:行者123 更新时间:2023-11-30 18:33:01 24 4
gpt4 key购买 nike

如何使函数在文件或控制台上 printf 其输出?更具体地说,如果在主函数中我有两种意见:1. printf 文件上的输出或 2. printf 控制台上的输出;我有另一个具有输出的函数,我需要将该输出返回到主函数,对吧?或者还有其他办法吗?

最佳答案

最简单的方法是不使用 printf 而是使用 fprintf 。基本上 printf(arg1, arg2, ...) 与 fprintf(stdout, arg1, arg2, ...) 相同。据我所知,无论你做什么, printf 总是会打印到控制台,所以如果你想重定向它,你必须在调用程序时通过 shell 来完成。在 bash 中,它类似于 ./a.out > file.txt。可能存在某种方法将标准输出从程序内重定向到文件,但我怀疑这不是一个非常惯用的解决方案,而只是证明它在理论上是可能的。

以下是如何使用 fprintf 解决该问题的示例:

int main(int argc, char ** argv)
{
FILE * fp;

// If the program was invoked with an argument, treat it as a filename
// and write the output to that file. Otherwise, write to stdout.
if(argc == 2) fp = fopen(argv[1], "w");
else fp = stdout;

fprintf(fp, "Hello, world!\n");
fflush(fp); // Make sure everything gets printed.
fclose(fp);
}

我在这里排除了所有错误检查。你不应该。例如,您应该检查 fopen 是否成功。 if 语句中的条件也远非完美。这只是一个演示。

关于c - 如何使函数 printf 将其输出输出到文件或控制台上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60005135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com