文件 知识点整理

文件

文件类型指针 : FILE *标识符    eg. FILE*fp

打开文件:

fopen()用指定的文件使用模式打开指定文件,并返回一个文件指针。
FILE *fp;
fp=fopen(文件名,文件使用模式);

文件名为要打开文件的完整描述,即为“文件地址+文件名”,为字符串,地址用/或\\表示

文件使用模式:


文件读写:

读函数写函数
fscanf( )fprintf( )
fgetc( )fputc( )
getc( )putc( )
fgets( )fputs( )
fread()fwrite( )

文件输入输出操作:

字符输出:fputc(ch,fp);//将一个字符输出到指定文件,写文件

例题:


FILE *fopenfun(char *file,char *model)
{   FILE *fp;
    if ( ( fp = fopen (file, model) ) == NULL )
    { printf ("Cannot open file of %s.\n",file);  
      exit (0);                            
    }
    else return fp;
}
#include <stdio.h> 
main( )
{   FILE *fp;                    
    char ch;                       
    fp=fopenfun("file.txt","w"); 
    while ( (ch=getchar( )) != '@' )          /* 判断输入的是否为结束标志 */
      {ch=~ch;                                              /* 对输入的字符按位取反加密*/
        fputc(ch, fp);                                       /* 读入的字符写入磁盘文件 */
       }
    fclose(fp);                                              /* 关闭磁盘文件 */
}
字符输入:ch=fgetc( );    读取fp指定的文件读取一个字符返回,读取的字符给变量ch //读文件

字符串输入函数:fgets(str,n,fp);   //读文件内容
 // fp为文件类型的指针,指向已打开的文件;str是一个字符串指针;n是一个整型变量,也可以是整型常量或整型表达式。
// 从指定的文件读入n-1个字符存放到由str指向的存储空间中,读入结束后,将自动在最后加一个字符串结束符‘\0’。
    fp = fopenfun (file, "r");	/* 打开文件 */
    while ( !feof(fp) )       //检测文件结束
    {   fgets( str,80,fp );	/*从文件中读出字符串 */
        printf ("%s", str);
    }
字符串输出:fputs(str,fp); //写入文件内容
gets(str);
fputs(str,fp);
fpurs("\n".fp);
格式化输入函数:fscanf( fp,格式控制串,输入列表);//从fp读文件内容

fscanf(fp, "%d %f", &i , &j);

格式化输出函数:fprintf(fp,格式控制串,输出列表);//写内容到fp指定文件
文件数据块写函数:fwrite(buffer,size,count,fp);//将一组数据写到指定的文件中。
       float  f[2];
       FILE  *fp;
       for(i=0;i<2;i++)
       scanf("%f",&f[i]);
       fp=fopen("aa.dat", "wb");
       fwrite(f,4,2,fp);     //将数组f中的数据写入fp指向的文件中,一次写4个字节,写2次
  struct student
         {    int num;
              char name[20];
              char sex;
              int age;
          }stud[3]={{10101,"Li Lin",'M',18},
                         {10102,"Zhang Fun",'M',19},
	             {10104,"Wang Min",'F',20}};
         for(i=0;i<3;i++)
         fwrite(&stud[i],sizeof(struct  student),1,fp);

文件数据块读函数:fread(buffer,size,count,fp);

关闭文件:fclose( );


文件定位函数: fseek rewind ftell

改变文件位置:fseek(fp,offset,position);
//offset是一个长整数,表示指针移动的字节数:为负时,表示向文件头的方向移动;为正时,向文件尾的方向移动;为0时,不移动。
//position用来指定指针移动的初始位置,既可以用符号常量名,也可以用对应的整数。


fseek函数的功能是:将文件fp的读写位置指针移到离开起始位置(position)的offset字节处的位置,如果函数读写指针移动失败,返回值为-1。 


例如:
fseek(fp,50L,SEEK_SET); 其作用是将文件位置指针移到文件头起始第50个字节处;
fseek(fp,100L,1); 是指将文件位置指针从当前位置向前(文件尾方向)移动100个字节 ;

fseek(fp,-20L,SEEK_END); 将文件位置指针从文件末尾向后(文件头方向)移动20个字节。

将文件指针移到文件的开头:rewind(fp);//函数调用成功返回0值;否则,返回非0值。

位置指针当前值函数 : ftell(fp); 
题:文件file1.c的内容连接到文件file2.c的后面
main( )
{   FILE *fp1,*fp2;
    int len;
    fp1=fopenfun("file1.txt","r");
    fp2=fopenfun("file2.txt","a");
    rewind(fp1); 
    while(!feof(fp1))//从头一直循环到fp1文件末尾
           fputc(fgetc(fp1),fp2); 	
    fclose(fp1);
    fclose(fp2);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值