首页 > 代码库 > C++对文件的操作
C++对文件的操作
1.打开磁盘文件
打开文件是指在文件读写之前做必要的准备工作,包括:
(1)为文件流对象和指定的磁盘文件简历联系,以便使文件流流向指定的磁盘文件。
(2)指定文件的打开方式,如,该文件是作为输入文件还是输出文件,是二进制文件还是ASCII文件等。
2.关闭磁盘文件
在对已打开的磁盘文件的读写操作完成后,应关闭该文件,即解除该磁盘文件与文件流的关联。
此时可以将文件流与其他磁盘文件建立关联,通过文件流对新的文件进行输入输出。
3.什么是文件流
文件流是以外存文件为输入输出对象的数据流。输出文件流是从内存流向外存文件的数据,输入文件流是从外存流向内存的数据,每一个文件流都有一个内存缓冲区与之对应。
下面举例子来实现对文件的操作:
#include<iostream> #include<fstream> #include<ctime> using namespace std; //选择排序 void ran_sort(int a[],int n) { int t; for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } } } int main() { int i,a[100]; //以下向磁盘文件写入数据 ofstream out_ran; out_ran.open("F:\\new\\random.txt",ios::out);//以输出方式打开文件,如果文件不存在,则新建文件 //如果已有此名字的文件,则将其原有内容全部清除 if(out_ran.fail()) { cout<<"打开文件失败!"<<endl; exit(1); } srand((unsigned)time(NULL)); for(int j=0;j<100;j++) { i=rand()%100; out_ran<<i<<" ";//向磁盘文件写入100个[0,100)的随机数 } out_ran.close();//关闭磁盘文件 //以下读取磁盘文件中的数据 ifstream in_ran; in_ran.open("F:\\new\\random.txt",ios::in|ios::_Nocreate); if(in_ran.fail()) { cout<<"打开文件失败!"<<endl; exit(1); } for(int i=0;i<100;i++) { in_ran>>a[i];//从磁盘文件读取100个整数,顺序存放在a数组中 } in_ran.close(); //对数组a中的数据排序 ran_sort(a,100); //以下向磁盘文件写入数据--排序后的数据 ofstream out_sort; out_sort.open("F:\\new\\random_sort.txt",ios::out); if(out_sort.fail()) { cout<<"打开文件失败!"<<endl; exit(1); } for(int i=0;i<100;i++) { out_sort<<a[i]<<" "; } out_sort.close(); system("pause"); return 0; }
请注意:在向磁盘文件输出一个数据后,要输出一个(或几个)空格或换行符,以作为数据间的分隔,否则以后从磁盘文件读数据时,很多整数的数字连成一片无法区分。
文件输入输出方式设置值:
ios::in 以输入方式打开文件
ios::out 以输出方式打开文件(默认打开方式),如果已有此名字文件,则将其原有内容全部清除
ios::app 以输出方式打开文件,写入的数据添加到文件末尾
ios::nocreate 打开一个已有的的文件,如文件不存在,则打开失败。nocreate的意思是不建立新的文件
ios::in|ios::out 以输入输出方式打开文件,文件可读可写
C++对文件的操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。