gpt4 book ai didi

c - 同时输出到两个流

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:45 24 4
gpt4 key购买 nike

我被要求为大学作业实现两个通用动态集,作为功能集的一部分,我设计了一个相当粗略的基准,让我大致了解算法的执行效率。除了在控制台中显示基准测试结果外,我还想将结果保存到磁盘中。到目前为止,我一直在使用 printf 并随后调用 fprintf 将相同的格式字符串保存到磁盘。

printf("Average time: %2.8f seconds || Total: %2.8f seconds\n", totalTime/50, totalTime);
fprintf(fp, "Average time: %2.8f seconds || Total: %2.8f seconds\n", totalTime/50, totalTime);

是否可以用 C 语言一次性完成所有工作?即同时将输出放在两个流上?我将不胜感激任何提示。根据我们的说明,我的代码必须符合 gnu90 标准。

提前致谢!

最佳答案

没有内置函数可以完全满足您的需求;所以考虑写一个。 printf 的一个有趣方面是它是一个可变参数函数;幸运的是,printf 系列旨在使这类事情变得容易。像这样的东西:

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

int stdout_fprintf(FILE * restrict stream, const char * restrict format, ...) {
va_list ap;
va_start(ap, format);
vprintf(format, ap);
int result = vfprintf(stream, format, ap);
va_end(ap);
return result;
}

关于c - 同时输出到两个流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21068974/

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