gpt4 book ai didi

c - 一种将标准输出输出到屏幕和文件的方法?

转载 作者:太空宇宙 更新时间:2023-11-04 07:56:14 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以写入和输出到一个文件,并在屏幕上输出它,而无需太多代码行。

我知道如何输出到控制台以及如何输出到文件,但它是其中之一,但我想将两者结合起来,这样我就不必重复 fprintf(stdout,__)一次输出到文件,一次输出到控制台。

我在 c 工作。

提前致谢。

编辑:虽然我也想知道如何在命令行中执行此操作,但我认为在代码和命令行中显示它很重要。只是为了展示问题的两种可能解决方案。它也应该独立于任何特定的操作系统……而且看起来不像 tee。

最佳答案

你可以像下面这样:

#include <stdio.h>
#include <stdarg.h>


void send_string(FILE *fd, char *fmt, ...)
{
va_list args_fd, args_stdout;

va_start(args_fd, fmt);
va_start(args_stdout, fmt);

vfprintf(fd, fmt, args_fd);
vfprintf(stdout, fmt, args_stdout);

fflush(fd);
fflush(stdout);

va_end(args_fd);
va_end(args_stdout);
}

int main()
{
FILE *fp = fopen("out.txt", "w");

send_string(fp, "hello, ");
send_string(fp, "world %d times!\n", 42);

fclose(fp);

return 0;
}

关于c - 一种将标准输出输出到屏幕和文件的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49956703/

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