C、两次调用函数,一次写入文件,一次写入终端

标签 c

C 的新手,有一个小问题,

我有一个函数,其中充满了“fprintf”语句和一些与输出相关的计算。 当我从 main() 调用它时,它可以正常工作并打印到文档中,然后我想再次调用它并获得相同的文本,但只输出到终端(如 printf 中)。

我在函数参数中有一个标志,它会指定这个选择,但除了每个 fprintf 的 if 语句之外没有办法完成它说:

if (flag == 1)
{ 
    fprintf(pt, "Random text...
} else { 
    printf("The same random text...
}

这看起来效率低得可怕。我的另一个想法是(我对此知之甚少)在上下文中的函数中使用#define:

if (flag== 1)
{
    #define fprintf(pt, printf(
}

这不仅看起来很便宜而且没有用。

任何想法将不胜感激, 谢谢

最佳答案

这样的事情怎么样:

FILE *out=stdout;

fprintf(out,"Hello World\n");

由于这是一个函数,您可以将 out 指针作为参数传入。打印到终端时,只需将 stdout 分配给它即可。

关于C、两次调用函数,一次写入文件,一次写入终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40751105/

相关文章:

c - Typedef 和 printf 格式说明符

c - 为什么海湾合作委员会不喜欢这样?

c - 切换大量 case 与单个 if

c - 如何检查 C 中的 fscanf 错误

c - python和c for循环的区别

c++ - GTK3 没有调整大小限制

c - apache 可移植运行时库中的文件 IO

c - 在 OSX 上使用 GDB 检测堆栈损坏(在金丝雀值上设置观察点)

c - switch 还是 const table 更好? (嵌入式软件)

c++ - 使用 uint16_t 和按位操作时期望的数字是多少