C语言文件操作

C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数。fopen函数的原型为

       FILE* fopen(const char *path,const char *mode)

       其中path为文件路径,mode为打开方式

       1)对于文件路径,只需注意若未明确给出绝对路径,则默认该文件在工程的目录下。若需给出绝对路径,则注意转义字符'\',比如有文件test.txt存放在C盘根目录下,则文件路径参数值应为C:\\test.txt。

       2)对于mode,主要由r,w,a,+,b,t六个字符组合而成。

        r:只读方式,文件必须存在

        w:只写方式,若文件存在,则原有内容会被清除;若文件不存在,则会建立文件

        a:追加方式打开只写文件,只允许进行写操作,若文件存在,则添加的内容放在文件末尾;若不存在,则建立文件

        +:可读可写

        b:以二进制方式打开文件

        t:以文本方式打开文件(默认方式下以文本方式打开文件)

   下面是常见的组合:

        r:      以只读的方式打开文件,只允许读,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部

        r+:    以可读可写的方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部

        rb+:  以可读可写、二进制方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部      

        rt+:  以可读可写、文本方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部      

        w:    以只写的方式打开文件,只允许写,若文件存在,文件中原有内容会被清除;若文件不存在,则创建文件,打开成功后返回文件指针,位置指针指向文件头部

        w+:  以读写的方式打开文件,允许读写,若文件存在,文件中原有内容会被清除;若文件不存在,则创建文件,打开成功后返回文件指针,位置指针指向文件头部

        a:     以追加、只写的方式打开文件,只允许写。若文件存在,则追加的内容添加在文件末尾,若文件不存在,则创建文件。打开成功后返回文件指针,位置指针指向文件头部

        a+:   以追加、可读写的方式打开文件,允许读写。若进行读操作,则从头开始读;若进行写操作,则将内容添加在末尾。若文件不存在,则创建文件。打开成功后返回文件指针,位置指针指向文件头部

 

贴自己编的三个小文件

#include<stdio.h>
int main()
{//数字的读写
    FILE *p;
    int i,j;
    //写
    p = fopen("cfile.txt","w");//打开或新建,重新写数据
    for(i=0;i<10;i++)
    {
        fprintf(p,"%d\n",i);
    }
    fclose(p);
    //读
    p = fopen("cfile.txt","r");
    for(i=0;i<10;i++)
    {
        fscanf(p,"%d\n",&j);
        printf("%d\n",j);
    }
    fclose(p);
    return 0;
}


 

#include<stdio.h>
#include <string.h>
int main()
{//字符串的读写
    FILE *p;
    int i,j;
    char *s = "hello world!",*ss;
    //如果ss不为指针,则读取出现问题
    //写
    p = fopen("cfile.txt","w");//打开或新建,重新写数据
    j = strlen(s);
    for(i=0;i<j;i++,s++)
    {
        fprintf(p,"%c",*s);
    }
    fclose(p);
    //读
    p = fopen("cfile.txt","r");
    fscanf(p,"%c",ss);
    while(*ss != '\0')
    {
        printf("%c",*ss);
        ss++;
        fscanf(p,"%c",ss);
    }
    return 0;
}


 

#include<stdio.h>
#include <string.h>
int main()
{//字符串的读写
    FILE *p;
    int i,j;
    char *s = "hello world!",*ss;
    //写
    p = fopen("cfile.txt","w");//打开或新建,重新写数据
    j = strlen(s);
    for(i=0;i<j;i++,s++)
    {
        //fprintf(p,"%c",*s);
        fputc(*s,p);
    }
    fclose(p);
    //读
    p = fopen("cfile.txt","r");
    *ss = fgetc(p);
    //fscanf(p,"%c",ss);
    while(*ss != EOF)
    {
        printf("%c",*ss);
        ss++;
        //fscanf(p,"%c",ss);
        *ss = fgetc(p);
    }
    return 0;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值