在屏幕上打印和文本文件

Thi*_*Thi 3 c text tee

我需要将某些内容转储到文本文件中,同样需要在屏幕上显示.(我告诉C程序的实用程序)菜单选项如下所示,

1. display AA parameters
2. display BB parameters
3. display CC parameters
4. dump all
5. Exit
Select option >

如果他们选择1/2/3,它只需要在屏幕上显示,或者如果他们选择选项#4,它需要逐个显示所有参数,同样需要转储到.txt文件中.

我知道,我们可以使用printf和fprintf函数在屏幕上显示并分别将其写入文本文件.问题是我显示了20多个参数,每个参数至少有20个子参数.

我目前正在实施如下,

printf (        "Starting serial number       [%ld]\n", 
        serial_info_p->start_int_idx);
fprintf(file_p, "Starting serial number       [%ld]\n", 
        serial_info_p->start_int_idx)
printf (        "Current Serial number         [%d]\n", 
        serial_info_p->current_int_idx);
fprintf(file_p, "Current Serial number         [%d]\n", 
        serial_info_p->current_int_idx);
Run Code Online (Sandbox Code Playgroud)

有没有最简单的方法来实现这一点来减少代码行数?

Gia*_*omo 7

编辑:C++标签似乎有误导性,有人可以删除吗?谢谢 :)

我使用可变参数宏来自定义printf和朋友.

我会写这样的东西:

#define     tee(fp,fmt, ...)                             \
        {                                                \
                printf (fmt, __VA_ARGS__);               \
                fprintf (fp, fmt, __VA_ARGS__);          \
        }
Run Code Online (Sandbox Code Playgroud)

(名称来自tee(1)实用程序)