printf与fprintf函数的区别?
2007-07-20 22:35

printf是标准输出流的输出函数,用来向屏幕这样的标准输出设备输出,而fprintf则是向文件输出,将输出的内容输出到硬盘上的文件或是相当于文件的设备上

printf是有缓冲的输出,fprintf没有缓冲

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
===================================================
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

sprintf 是个变参函数,定义如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:
格式化字符串上。
printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的
格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终
函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。
格式化数字字符串
sprintf 最常见的应用之一莫过于把整数打印到字符串中....

格式化读写函数fscanf和fprintf

  fscanf函数,fprintf函数与前面使用的scanf和printf 函数的功能相似,都是格式化读写函数。 两者的区别在于 fscanf 函数和fprintf函数的读写对象不是键盘和显示器,而是磁盘文件。这两个函数的调用格式为: fscanf(文件指针,格式字符串,输入表列); fprintf(文件指针,格式字符串,输出表列); 例如:

  fscanf(fp,"%d%s",&i,s);
  fprintf(fp,"%d%c",j,ch);

  用fscanf和fprintf函数也可以完成例10.6的问题。修改后的程序如例10.7所示。

  [例10.7]

#include<stdio.h>
struct stu
{
char name[10];
int num;
int age;
char addr[15];
}boya[2],boyb[2],*pp,*qq;
main()
{
FILE *fp;
char ch;
int i;
pp=boya;
qq=boyb;
if((fp=fopen("stu_list","wb+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("\ninput data\n");
for(i=0;i<2;i++,pp++)
scanf("%s%d%d%s",pp->name,&pp->num,&pp->age,pp->addr);
pp=boya;
for(i=0;i<2;i++,pp++)
fprintf(fp,"%s %d %d %s\n",pp->name,pp->num,pp->age,pp->
addr);
rewind(fp);
for(i=0;i<2;i++,qq++)
fscanf(fp,"%s %d %d %s\n",qq->name,&qq->num,&qq->age,qq->addr);
printf("\n\nname\tnumber age addr\n");
qq=boyb;
for(i=0;i<2;i++,qq++)
printf("%s\t%5d %7d %s\n",qq->name,qq->num, qq->age,
qq->addr);
fclose(fp);
}

  与例10.6相比,本程序中fscanf和fprintf函数每次只能读写一个结构数组元素,因此采用了循环语句来读写全部数组元素。 还要注意指针变量pp,qq由于循环改变了它们的值,因此在程序的25和32行分别对它们重新赋予了数组的首地址。

fprint函数与print函数相关推荐

  1. 学习python(二)——input函数与print函数

    1.input函数 input() 是 Python 的内置函数,用于从控制台读取用户输入的内容.input() 函数总是以字符串的形式来处理用户输入的内容,所以用户输入的内容可以包含任何字符.inp ...

  2. R语言打印函数,print函数和cat函数实战

    R语言打印函数,print函数和cat函数实战 目录 R语言print函数和cat函数实战 #基本语法 # print()函数和cat()函数对比

  3. print函数python_带有结束参数的Python print()函数

    print函数python print()函数 (print() function) print() function is used to print message on the screen. ...

  4. 零基础入门Python I/O:从print函数开始

    导读:计算机程序用于执行任务,是满足人类需求的工具.有信息的输入,程序才能接收指令.理解需求:有信息的输出,运行结果才能被反馈给用户.在编程中,信息输入操作称为Input,输出操作称为Output,统 ...

  5. python中常用于输出信息的语句函数是print括号_第十四课我们研究一下常用的print()函数,翻看了一下Python宝典...

    很高兴又和大家见面了. 上一节课,我们学会了如何打通任督二脉,突破编程中的瓶颈,小K希望大家遇到问题时,能够冷静下来,认真分析,不要怂. 这两节课的主要内容是带大家探究"熟悉的陌生人&quo ...

  6. Python print函数及format()格式化输出详解

    今天继续给大家介绍Python相关知识,本文主要内容是Python print函数及format()格式化输出详解. 一.print()函数基本使用 print()函数是Python中用于向控制台输出 ...

  7. awk print函数

    awk命令的操作部分被括在大括号内.如果未指定操作,则匹配到模式时, awk 会采取默认操作,即在屏幕上打印包含模式的行.print函数用于简单的输出.更为复杂的输出则要使用printf 和sprin ...

  8. python print函数用法总结

    print函数说明 print() 函数的详细语法格式如下: print (value,...,  sep='',  end='\n',  file=sys.stdout,  flush=False) ...

  9. 函数指针作为函数参数及函数作为函数参数

    转载于:http://blog.csdn.net/vlily/article/details/7244682 转载于:http://blog.csdn.net/shengnan_wu/article/ ...

最新文章

  1. 2009-徘徊-开场白
  2. RAID0、RAID1、RAID0+1模式实战评测
  3. 解决启动flanneld失败的方法
  4. 获取指定某一天的00:00—23:59
  5. 加拿大计算机专业学什么,加拿大哥伦比亚大学计算机专业课程
  6. Spring AOP技术(基于AspectJ)的Annotation开发
  7. python 模块
  8. vue+Java后端进行调试时如何解决跨域问题
  9. java odbc 驱动_Java java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序...
  10. 自动驾驶基础知识(二)——术语中英文对照
  11. 本科计算机毕业论文写作日志,本科毕业论文写作日志.doc
  12. 时间流逝,岁月里所有的狼狈
  13. 腾讯机器狗耍中国功夫,挑战网红波士顿机器狗
  14. WSO2 Business Process Server(WSO2 BPS)使用简易教程
  15. vue 点击打开小窗口
  16. 农村谋定产业发展模式-农业大健康:特色赋能乡村多元化
  17. 全功能音视频互动开发平台
  18. 工具类App的下一个风口:今天,我们聊一聊颜值经济这回事
  19. 【Jetpack篇】LiveData取代EventBus,安卓面试项目
  20. ISCC——部分题wp

热门文章

  1. 用结构体指针访问结构体中的结构体指针(结构体指针的嵌套)
  2. 企业电子邮件系统全局地址簿管理及使用方法介绍
  3. HG2821T-U电信光猫修改SSID去掉ChinaNet
  4. 基于百度地图API在AI Studio上的卫星地图块图像处理与分类
  5. kafka干货(五):kakfka的python客户端----Confluent-kafka
  6. 怎样用matlab把视频转gif动画,Matlab制作视频并转换成gif动态图的两种方法
  7. Markdown表格、单元格合并、快速编辑表格
  8. GIS毕业生经典笔试、面试题汇总(待续)
  9. sed 注释行的 方法
  10. “远程办公效率低?” 谈谈职场沟通与交流