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/