fprintf和printf有什么区别吗?

如题所述

1. fprintf和printf函数的原型有所不同。fprintf函数的原型为int fprintf(FILE *stream, const char *format, [ argument ]...),而printf函数的原型为int printf(const char *format [, argument]...)。
2. 它们输出的目标不同。printf函数的输出目标是标准输出(通常是屏幕,但可以重定向),而fprintf函数的输出目标是文件设备,因此它需要一个额外的文件指针FILE*作为参数。
3. fprintf函数没有缓冲区,而printf函数的输出是有缓冲的。
4. fprintf函数用于向文件指针指向的文件输出ASCII代码,而sprintf函数用于格式化输出到数组中。
5. fprintf函数的返回值是成功输出的字节数,如果出错则返回EOF。sprintf函数的返回值是实际写入数组的字符个数。
扩展资料:
1. fprintf函数向文件指针指向的文件输出ASCII代码,并向显示器输出错误信息。它的使用形式为fprintf(文件指针,"输出格式",输出项系列)或fprintf(stderr,"错误信息")。它的返回值是成功输出的字节数,如果出错则返回EOF。该函数的定义在stdio.h头文件中。
2. sprintf函数将参量值按照格式字符串格式化后输出到缓冲区中。它的原形为int sprintf(char *buf,const char *format,arg_list)。其中,char *buf是要输出内容的缓冲区,const char *format是格式字符串,arg_list是参量列表。例如,sprintf(buffer,"相对扇区号∶%s(其中∶柱面号为%d/磁头号为%d/扇区号为%d)",string,cyls,head,sector)。该函数的返回值是实际写入数组的字符个数,定义在stdio.h头文件中。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜