printf函数的接口如下所示:
int printf( const char *format [, argument]... );
fprintf函数的接口如下所示:
int fprintf( FILE *stream, const char *format [, argument ]...);
从接口可以看出,使用printf函数会更方便些,少了一个函数参数。在通常情况下,的确是这样的。但在输出信息比较多,而且输出的信息有可能需要分类的化,使用fprintf的好处就体现出来了。
printf函数使用的输出设备是标准输出设备 ,即stdout。在使用fprintf函数时,我们可以在第一个参数使用stdout或stderr进行 输出信息分类。虽然stdout和stderr在正常情况下都指向标准输出设备,但通常程序运行时的命令行参数,可以分别控制stdout和stderr 指向不同的设备或文件 。这样,就可以达到对输出信息进行分类控制了。
http://home.51.com/hecheng0503/diary/item/10045370.html