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

时间:2016-11-22 20:33:45

标签: c

对C来说相当新,并且有一个小问题,

我的功能充满了&f; 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(
}

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

任何想法都会受到赞赏, 感谢

2 个答案:

答案 0 :(得分:8)

这样的事情怎么样:

FILE *out=stdout;

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

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

答案 1 :(得分:2)

你可以使用printf(相当于fprintf(stdout,的事实来做三元表达:

fprintf(flag == 1 ? pt : stdout, "Random text...");