zoukankan      html  css  js  c++  java
  • c 语言的输出

    printf是标准输出流的输出函数,用来向屏幕这样的标准输出设备输出,而fprintf则是向文件输出,
    将输出的内容输出到硬盘上的文件或是相当于文件的设备上
      printf是有缓冲的输出,fprintf没有缓冲
      fprintf()传送输出到一个流中的函数
      原形:int fprintf(FILE *stream,const char *format[,argument,...])
      功能 <javascript:void(0)>:①向文件指针指向的文件输出ASCⅡ代码
      ②向显示器输出错误信息 <javascript:void(0)>
      使用形式:
      ①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);
      }
  • 相关阅读:
    cf854B Maxim Buys an Apartment
    Snuke's Coloring 2-1
    P1087 FBI树
    Card Game for Three
    Many Formulas
    排队
    苹果消消乐(尺取法)
    猴子选大王(约瑟夫)
    进制转化
    UIProgress控件的属性和方法
  • 原文地址:https://www.cnblogs.com/xmphoenix/p/2002207.html
Copyright © 2011-2022 走看看