您的位置:首页 > 编程语言 > C语言/C++

C语言文件操作

2013-01-15 10:22 232 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: