c++对txt文件的读取与写入
2015-09-08 10:07
387 查看
fstream提供了三个类,用来实现c++对文件的操作。(文件的创建、读、写)。
ifstream – 从已有的文件读
ofstream– 向文件写内容
fstream- 打开文件供读写
文件打开模式:
文件指针位置在c++中的用法:
常用的错误判断方法:
无论读写都要包含头文件
读:从外部文件中将数据读到程序中来处理
对于程序来说,是从外部读入数据,因此定义输入流,即定义输入流对象:ifsteam infile,infile就是输入流对象。
这个对象当中存放即将从文件读入的数据流。假设有名字为myfile.txt的文件,存有两行数字数据,具体方法:
写:将程序中处理后的数据写到文件当中
对程序来说是将数据写出去,即数据离开程序,因此定义输出流对象ofstream outfile,outfile就是输出流对象,这个对象用来存放将要写到文件当中的数据。具体做法:
ifstream – 从已有的文件读
ofstream– 向文件写内容
fstream- 打开文件供读写
文件打开模式:
ios::in 读 ios::out 写 ios::app 从文件末尾开始写 ios::binary 二进制模式 ios::nocreate 打开一个文件时,如果文件不存在,不创建文件。 ios::noreplace 打开一个文件时,如果文件不存在,创建该文件 ios::trunc 打开一个文件,然后清空内容 ios::ate 打开一个文件时,将位置移动到文件尾
文件指针位置在c++中的用法:
ios::beg 文件头 ios::end 文件尾 ios::cur 当前位置 例子: file.seekg(0,ios::beg); //让文件指针定位到文件开头 file.seekg(0,ios::end); //让文件指针定位到文件末尾 file.seekg(10,ios::cur); //让文件指针从当前位置向文件末方向移动10个字节 file.seekg(-10,ios::cur); //让文件指针从当前位置向文件开始方向移动10个字节 file.seekg(10,ios::beg); //让文件指针定位到离文件开头10个字节的位置
常用的错误判断方法:
good() 如果文件打开成功 bad() 打开文件时发生错误 eof() 到达文件尾
无论读写都要包含头文件
读:从外部文件中将数据读到程序中来处理
对于程序来说,是从外部读入数据,因此定义输入流,即定义输入流对象:ifsteam infile,infile就是输入流对象。
这个对象当中存放即将从文件读入的数据流。假设有名字为myfile.txt的文件,存有两行数字数据,具体方法:
int a,b; ifstream infile; infile.open("myfile.txt"); //注意文件的路径 infile>>a>>b; //两行数据可以连续读出到变量里 infile.close() //如果是个很大的多行存储的文本型文件可以这么读: char buf[1024]; //临时保存读取出来的文件内容 string message; ifstream infile; infile.open("myfile.js"); if(infile.is_open()) //文件打开成功,说明曾经写入过东西 { while(infile.good() && !infile.eof()) { memset(buf,0,1024); infile.getline(buf,1204); message = buf; ...... //这里可能对message做一些操作 cout<<message<<endl; } infile.close(); }
写:将程序中处理后的数据写到文件当中
对程序来说是将数据写出去,即数据离开程序,因此定义输出流对象ofstream outfile,outfile就是输出流对象,这个对象用来存放将要写到文件当中的数据。具体做法:
ofstream outfile; outfile.open("myfile.bat"); //myfile.bat是存放数据的文件名 if(outfile.is_open()) { outfile<<message<<endl; //message是程序中处理的数据 outfile.close(); } else { cout<<"不能打开文件!"<<endl; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- C++ Custom Control控件向父窗体发送对应的消息
- C++中拷贝构造函数的应用详解