我需要将某些内容转储到文本文件中,同样需要在屏幕上显示.(我告诉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)
有没有最简单的方法来实现这一点来减少代码行数?
编辑:C++标签似乎有误导性,有人可以删除吗?谢谢 :)
我使用可变参数宏来自定义printf和朋友.
我会写这样的东西:
#define tee(fp,fmt, ...) \
{ \
printf (fmt, __VA_ARGS__); \
fprintf (fp, fmt, __VA_ARGS__); \
}
Run Code Online (Sandbox Code Playgroud)
(名称来自tee(1)实用程序)