fprintf:格式化输出函数

函数原型:int fprintf(FILE *fp, char *format[, argument,...]);

头文件:#include<stdio.h>

是否是标准函数:是

函数功能:把argument的值以format所指定的格式输出到fp指向的文件中。这个函数理解起来和printf类似,在一般的使用中,第二个参数可以是一个字符串的头指针,也可以就是一个字符串。例如:fprintf(fp, "Cannot open this file!!"),意思就是把字符串Cannot open this file!!输出到文件fp中去。该函数一般用作终端的出错提示或是在磁盘中生成错误报告。

返回值:如果正确返回实际输出字符数,若错误则返回一个负数。

例程如下 用fprintf函数向终端发出出错提示。

#include <stdio.h>

int main(void)

{

   FILE *fp;

     /*以只读方式打开名为test.txt的文件*/

   if ((fp = fopen("//test.txt", "rt"))

       == NULL)

   {

      fprintf(stderr, "Cannot open this file!!/n");

      return 1;    /*若该文件不能打开,在屏幕上显示出错提示*/

   }

      /*若该文件能够打开,在屏幕上显示正确提示*/

      fprintf(stderr,"Have open this file!!/n");

   return 0;

}

例程说明:

1)首先,以只读方式打开名为test.txt的文件,如果文件不能打开,这返回NULL

2)若该文件不能打开,在屏幕上显示出错提示。

3)若该文件能够打开,在屏幕上显示正确提示。

注意:该函数中第一个参数是stderr,这是C语言中标准出错输出指针,它指向标准的出错输出文件,也就是显示器。因为,在操作系统中,I/O设备都是用文件进行管理的,因此设备都配有相应的控制文件。在C语言中,有三个文件与终端相联系,因此系统定义了三个文件指针。见下表:

设备文件

文件指针

标准输入

stdin

标准输出

stdout

标准出错输出

stderr

 

                                                                 标准文件指针

 

 

      

 

 

在系统运行时,程序自动打开这三个标准文件。

本例程的运行结果为:

1)如果不能打开文件:

Cannot open this file!!

2)如果可以打开文件:

Have open this file!!

例程如下用fprintf函数在磁盘中生成错误报告。

#include <stdio.h>

int main(void)

{

   FILE *fp1,*fp2;

/*以只读方式打开名为test.txt的文件*/

   if ((fp1 = fopen("text.txt", "rt"))

       == NULL)

   {

         /*若文件打不开,则生成错误报告*/

      fp2=fopen("report.txt","w"); 

      fprintf(fp2, "Cannot open this file!!/n");

      return 1;

   }

     return 0;

}

例程说明:

1)首先,以只读方式打开名为test.txt的文件,如果文件不能打开,这返回NULL

2)若该文件不能打开,则以写的方式打开一个名为report.txt的文件,并按照格式要求向文件中写入字符串"Cannot open this file!!/n",即生成了一个错误报告。

注意:这里函数fprintf的第一个参数为文件指针,是用户自定义的,与上一例程的系统定义的文件指针stderr不同。fprintf函数与printf函数的使用类似,其实printf函数是fprintf函数的一个特例,printf函数只能向标准输出文件(显示器)输出数据,而fprintf函数也可以向一般用户定义的文件输出数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值