C语言文件操作

本文详细介绍了C语言中文件的基本操作方法,包括文件的打开与关闭、读写操作及文件定位等。通过具体实例展示了如何使用fopen、fclose、fgetc、fread、fputc、fwrite等函数进行文件读写,并利用rewind、fseek和ftell进行文件定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言文件操作

一、文件的打开与关闭
  1. 使用 fopen 打开文件

    FILE *file;
    file = fopen("文件名","文件使用方式");
  2. 文件的打开方式

    文件使用方式解释
    r只读。若文件不存在返回空指针
    w只写。若文件存在,则删除其内容,否则创建一个新文件
    a追加。若文件不存在,则创建一个新文件
    r+读写。指定的文件必须已存在,否则返回NULL
    w+读写。若指定的文件已存在,则其中的内容被删去
    a+读写。追加写

    如果在后面附加 ”b“ ,则表示打开的是二进制文件。

  3. 使用 fclose 关闭文件

    fclose(文件指针); 
二、文件读写常用函数
  1. fgetc 函数
    从指定文件读入一个字符

    fgetc(文件指针);
  2. fread 函数

    从指定文件读入一组数据

    fread(buffer, size, count, file);

    buffer 存放读入数据的内存首地址

    size 每个数据项的字节数

    count 数据项个数

    file 文件类型的指针

  3. fscanf 函数

    从指定的文件中格式化读入数据。其一般形式为:

    fscanf(文件指针,格式控制,地址表);
  4. 读入例子

    
    #include<stdio.h>
    
    int main()
    {
       FILE *file;
       //1.dat 为 "Demo1"
       file = fopen("1.dat","r");
    
       char a;
       char b[3];
       int c;
    
       if(file != NULL){
           a = fgetc(file);
           fread(b,sizeof(char),3,file);
           fscanf(file,"%d",&c);
       }
    
       putchar(a);
       for(int i = 0; i < 3; i++){
           printf(" %c",b[i]);
       }
       printf(" %d",c);
    
       fclose(file);
       return 0;
    }
  5. fputc 函数

    将一个字符写到指定的文件中,若写成功返回以输出字符,否则返回 EOF

    fputc( int , FILE* );
  6. fwrite 函数

    将一组数据写到指定的文件中

    fwrite( buffer, size, count, file);

    buffer 输出数据的首地址

    size 每个数据项的字节数

    count 数据项个数

    file 文件类型的指针

  7. fprintf 函数

    格式化写数据到指定的文件中,形式为

    fprintf(文件指针,格式控制,输出表);
  8. 读写例子

    
    #include<stdio.h>
    
    int main()
    {
       FILE *file;
       //1.dat 为空
       file = fopen("1.dat","w+");
    
       char a0 = 'D';
       char b0[3] = {'e','m','o'};
       int c0 = 2;
       char a1;
       char b1[3];
       int c1;
    
       if(file != NULL){
           // 输出
           fputc(a0,file);
           fwrite(b0,sizeof(char),3,file);
           fprintf(file,"%d",c0);
           // 读写指针移动到文件开头
           rewind(file);
           // 读入
           a1 = fgetc(file);
           fread(b1,sizeof(char),3,file);
           fscanf(file,"%d",&c1);
       }
       // 打印结果
       putchar(a1);
       for(int i = 0; i < 3; i++){
           printf(" %c",b1[i]);
       }
       printf(" %d",c1);
    
       fclose(file);
       return 0;
    }
    
三、文件的定位
  1. rewind 函数

    将文件的读写指针移动到文件的开头。

    rewind(文件指针);
  2. fseek 函数

    将文件的读写指针移动到文件的指定位置

    fseek(文件指针,偏移量,起始位置);

    偏移量的类型为长整型

    起始位置是指移动文件读写指针的参考位置,有以下三个值

    SEEK_SET 或 0 表示文件首

    SEEK_CUR 或 1 表示当前读写的位置

    SEEK_END 或 2 表示文件尾

  3. ftell 函数

    返回文件的当前读写位置,若出错返回(-1L)。其形式为

    ftell(文件指针);

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值