我个人整理的一些关于文件的一些基本操作

//typedef

typedef struct {  short level;   //缓冲区"满"或"空"的程度  unsigned  flags;//文件状态标志  char fd;//文件描述符  unsigned  char  hold;//如无缓冲区不读取字符  short  bsize;//缓冲区的大小  unsigned  char  *buffer;//数据缓冲区的位置  unsigned  ar  *cur;//指针当前的指向  unsigned  istemp;//临时文件,指示器  short     token;//用于有效性检查 }FILE;

//fopen FILE  *fp; fp=fopen(文件名,使用文件方式);

//fclose fclose(文件指针);

//fputc fputc(ch,fp);//将字符(ch的值)输出到fp所指向的文件中去

//fgetc ch=fgetc(fp);//从指定的文件fp读入一个字符ch ch=fgetc(fp); /*while(ch!=EOF) {  putchar(ch);  ch=fgetc(fp); }*/

//feof while(!feof(fp)) {  c=fgetc(fp);  .  .  . }//当文件没有结束时,feof(fp)的值为0, !feof(fp)为1

//fputc  and  fgetc 函数的举例

#include(stdio.h> main() {  FILE *fp;  char ch,filename[10];  scanf("%s",filename);  if((fp=fopen(filename,"w"))==NULL)  {   printf("cannot  open  file/n");   exit(0);  }  ch=getchar();  ch=getchar();  while(ch!='#')  {   fputc(ch,fp);   putchar(ch);   ch=getchar(fp);  }  fclose(fp); } file1.c//输入磁盘文件名 computer and c#//输入一个字符串 computer and c//输出一个字符串

  //DOS命令验证的格式 c>type file1.c computer and c c>type file2.c computer  and c

#include<stdio.h> main(argc,char *argv[]) {  FILE *in,*out;  char ch;  if(argc!j=3)  {   printf("You  forget  to enter  afilename/n");   exit(0);  }  if((in=fopen(argv[1],"r"))==NULL)  {   printf("cannot  open  infile/n");   exit(0);  }  if(out=fopen(argv[2],"w"))=NULL)  {   printf("cannot  open  outfile/n");   exit(0);  }  while(!feof(in))    fputc(fgetc(in),out);  fclose(in);  fclose(out); }//argc的值为3,代表有三个文件(in ,out ,原文件)

//fread fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); /*buffer:是一个指针,对于fread来说,是读入数据的存放地址,对fwrite来说,是要输出数据的地址  size:要读写的字节数 count:要读写多少个size字节的数据项 fp:文件型指针*/

//fprinf  and  fscanf fprintf(文件指针,格式字符串,输出列表); fscanf(文件指针,格式字符串,输入列表); //egg举例: fprintf(fp,"%d,%6.3f",i,t); fscanf(fp,"%d,%6.3f",&i,&t);

  //putw   putw(int i,FILE*fp)   {   char  *s;   s=&i;   putc(s[0],fp);   putc(s[i],fp);   return(i);   }   //getw   getw(FILE  *fp)   {    char *s;    int i;    s=char *&i;    s[0]=getc(fp);    s[1]=getc(fp);    return(i);   }//i占两个字节,是整型.

  //定义一个向磁盘文件写一个实数的函数   putfloat(float num,FILE *fp)   {    char *s;    int count;    s=(char *)&num;    for(count=0;count<4;count++)     putc(s[count],fp);   }

  //fgets  and  fputs

  fgets(str,n,fp);   fputs("china",fp);

 

  //rewind #include<stdio.h>   main()   {    FILE *fp1,*fp2;    fp1=fopen(file1.c","r");     fp2=fopen(file2.c","w");     while(!feof(fp1));     putchar(getc(fp1));     rewind(fp1);     while(!feof(fp1))      putc(getc(fp1),fp2);     fclose(fp1);     fclose(fp2);   }//使位置指针重新返回文件的开头

  //fseek   fseek(文件类型指针,位移量,起始点);    fseek(fp,100L,0)//将位置指针移到离文件头100个字节处    fseek(fp,50L,1)//将位置指针移到离当前位置50个字节处    fseek(fp,-10L,2)//将位置指针向后退10个字节

   //ftell

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值