文件操作相关函数

来源:互联网 发布:云图tv电视直播mac版 编辑:程序博客网 时间:2024/06/05 19:06

文件读写

本文主要介绍C/C++语言的文件操作相关知识点。

基本概念:C

文件系统功能是操作系统的重要功能和组成部分。在操作系统中,文件是指保存在外部介质的一个有序数据集,例如源文件、目标程序文件、可执行程序,或待输入的原始数据或输出的结果数据。一般把源文件、目标文件和可执行程序称为程序文件,输入/输出数据称为数据文件。为了提高数据存取访问的速度,C程序对文件的处理采用缓冲文件系统的方式进行,即程序与文件的数据交换通过缓冲区进行。文件系统分为缓冲文件系统非缓冲文件系统。缓冲文件系统由操作系统自动完成,非缓冲文件系统有程序控制。写文件:首先把数据写入文件缓冲区,当写满内存缓冲单元(如512B),操作系统自动把全部数据写入磁盘的一个扇区,然后清空文件缓冲区,新的数据继续写入到文件缓冲区。读文件:系统首先自动把一个扇区的数据导入文件缓冲区,供C程序逐个读入数据,一旦内存缓冲单元的数据被全部读入,系统自动把下一个扇区的数据导入文件缓冲区,供C程序继续读入新的数据。

相关操作函数:

1.头文件:#include<stdio.h>

2.打开文件:fopen("文件名","文件打开方式");//文本文件:只读"r"、只写"w"、追加"a"、读写"r+"、新建读写"w+"、打开读写追加"a+"

示例:

FILE* fp;fp = fopen("abc.txt","r");//或者FILE* fp = fopen("abc.txt","r");

3.关闭文件:fclose(文件指针);

4.字符读写函数:fputc(char ch, FILE* fp);//写字符char ch = fgetc(FILE* fp);//读入字符

5.字符串读写函数:fputs(s,fp);//写字符串,s:字符串,fp:文件指针fgets(s,n,fp);//读入字符串,s:字符串,n:读入的字符个数,fp:文件指针

6.格式化文件读写函数:fscanf(文件指针,格式字符串,输入表);fprintf(文件指针,格式字符串,输出表);

示例:
FILE* fp;int n;float x;fp = fopen("a.txt","r");fscanf(fp,"%d%f",&n,&x);fprintf(fp,"%d%f",n,x);
6.其他函数:feof(fp);//判断文件的末尾标志

完整示例:

#include<stdio.h>#include<stdlib.h>int main(void){    FILE *fp;//定义文件指针     char ch = 'f';    char chs[] = "File";    char strout[5];    if((fp=fopen("chsFile.txt","w")) == NULL)//写方式打开文件 ,并判断是否正确打开     {        printf("File open error!\n");        exit(0);    }//    ch = getchar();    fputc(ch,fp);//写字符到文件fp    fclose(fp);//关闭文件         if((fp=fopen("chsFile.txt","a+")) == NULL)//写方式打开文件 ,并判断是否正确打开     {        printf("File open error!\n");        exit(0);    }fputs(chs,fp);//写字符串到文件fp    fclose(fp);//关闭文件     if((fp=fopen("chsFile.txt","r")) == NULL)//读方式打开文件 ,并判断是否正确打开     {        printf("File open error!\n");        exit(0);    }while(fgets(strout,5,fp) != NULL)//读入字符串 {printf("%s",strout);}puts(chs);//显示到屏幕 fclose(fp);return 0;}

基本概念:C++

头文件:

#include<ofstream>//文件写操作

#include<ifsrtream>//文件读操作

#include<fstream>//文件读写操作

写入文件:

1.创建一个ofstream对象来管理输出流;

2.将该对象与特定的文件关联起来;

3.使用类似cout的<<插入运算符实现写操作。

读文件:

1.创建一个ifstream对象来管理输入流;

2.将该对象与特定的文件关联起来;

3.使用类似cin的>>方式读取数据。

关闭文件:当输入/输出流对象过期时,到文件的连接自动关闭;也可以调用函数close()显示关闭

is_open():检查文件是否被打开的新的C++方法

fstream fin;if(!fin.is_open()){    cout<<"error! open file!!"<<endl;}

文件模式:

ios_base::in 打开文件,读操作

ios_base::out  打开文件,写操作

ios_base::app  打开文件,追加写操作

ios_base::ate  打开文件,移到文件尾

完整示例:

#include<iostream>#include<fstream>#include<string>using namespace std;int main(){string filename = "HiFile.txt";string fileContents[5] = {"Hello","Mr.","Fan","How are you?"};ofstream fout(filename,ios_base::out);if(fout.is_open()){for(int i=0;i<10;i++){fout<<fileContents[i]<<"\n";}fout.close();}return 0;}


0 0
原创粉丝点击