12.6怎样同时向两个地方输出,如同时输出到屏幕和文件?
直接做不到这点。但是你可以写出你自己的printf 变体, 把所有的内容都输出两次。下边有个简单的例子:
#include <stdio.h>
#include <stdarg.h>
void f2printf(FILE *fp1, FILE *fp2, char *fmt, ...)
{
va_list argp;
va_start(argp, fmt); vfprintf(fp1, fmt, argp); va_end(argp);
va_start(argp, fmt); vfprintf(fp2, fmt, argp); va_end(argp);
}
这里的f2printf() 就跟fprintf() 一样, 除了它接受两个文件指针并同时输出到两个文件。参见问题15.5。
#include <stdio.h>
#include <stdarg.h>
void f2printf(FILE *fp1, FILE *fp2, char *fmt, ...)
{
va_list argp;
va_start(argp, fmt); vfprintf(fp1, fmt, argp); va_end(argp);
va_start(argp, fmt); vfprintf(fp2, fmt, argp); va_end(argp);
}
这里的f2printf() 就跟fprintf() 一样, 除了它接受两个文件指针并同时输出到两个文件。参见问题15.5。