fprintf和printf有什么区别吗?

如题所述

第1个回答  2022-11-16

1、原形:fprintf的函数原型为int fprintf( FILE *stream, const char *format, [ argument ]...);而printf的函数原型为:int printf( const char *format [, argument]... )。

2、输出的目标:printf,是把格式字符串输出到标准输出(一般是屏幕,可以重定向);fprintf, 是把格式字符串输出到指定文件设备中,所以参数笔printf多一个文件指针FILE*。

3、缓冲:printf是有缓冲的输出;fprintf没有缓冲。

4、功能:fprintf()传送输出到一个流中的函数;sprintf()格式化输出到数组的函数。

5、返回值:fprintf()成功则返回输出的字节数,错误则返回EOF;sprintf()实际写入数组的字符个数。

扩展资料:

1、fprintf()传送输出到一个流中的函数

原形:int fprintf(FILE *stream,const char *format[,argument,...])

功能:①向文件指针指向的文件输出ASCⅡ代码

②向显示器输出错误信息 

使用形式:

①fprintf(文件指针,"输出格式",输出项系列);

②fprintf(stderr,"错误信息");

使用实例:fprintf(stream,"%d %c %f",i,c,f);

其中定义FILE *stream;

int i; char c; float f;

返回值:成功则返回输出的字节数,错误则返回EOF。

头文件:stdio.h

2、sprintf()格式化输出到数组的函数

原形∶int sprintf(buf,format,arg_list)

其中char *buf;

功能∶把arg_list参量的值按format的格式输出到buf中。

例∶sprintf(buffer,"相对扇区号∶%s(其中∶柱面号为%d/磁头号为%d/扇区号为%d)",string,cyls,head,sector);

其中char buffer[100];

char *string="  ";

int cyls,head,sector;

返回值∶实际写入数组的字符个数。

头文件∶stdio.h

相似回答