VC++中对文件的写入和读取
来源:互联网 发布:python scapy 编辑:程序博客网 时间:2024/05/18 20:46
VC++中对文件的写入和读取
本文介绍两种方法对文件进行读取和写入操作:1、采用fstream类;2、采用CStdioFile类。
CStdioFile继承自CFile,一个CStdioFile对象代表一个用运行时函数fopen打开的C运行时流式文件。
C++中的fstream类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O。stream类有两个重要的运算符:插入器(<<)和析取器(>>)。插入器(<<)即向流输出数据,析取器(>>)即从流中输入数据。在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。fstream类包括向“流”输出数据的ofstream类和从“流”中输出数据的ifstream类。
1、文件的写入
往文件中写入数据的操作较为简单,这里以fstream类中往文件写入数据为例,介绍VC++中对文件的写入方法。对于用CstdioFile类对文件进行写入操作可参看相关资料。下面给出采用fstream类对文件进行写入操作的代码:
#include <fstream.h>
ofstream of1;//创建对象
of1.open("数据记录.txt",ios::out,filebuf::openprot);//打开文件
int i;//定义一个整型变量
float f; //定义一个单精度浮点型变量
double d; //定义一个双精度浮点型变量
i=123;//赋值
f=3.478f; //赋值
d=859.653; //赋值
of1<<i<<’\t’<<f<<’\t’<<d;//写入数据
of1.close();//关闭文件
运行后打开“数据记录.txt”文件,内容见图1,变量i,f,d已写入文件中。
图1 打开后文件的内容
2、文件的读取
2.1采用fstream类
采用fstream类中的析取器(>>)从第一节生成的文件“数据记录.txt”中读取数据,实现的代码如下:
ifstream if1; //创建对象
if1.open("数据记录.txt",ios::in,filebuf::openprot);//打开文件
int i; //定义一个整型变量
float f; //定义一个单精度浮点型变量
double d; //定义一个双精度浮点型变量
CString str; //定义一个Cstring类
while(!if1.eof())
{
if1>>i>>f>>d;//读取数据
str.Format("%d %f %lf",i,f,d);
MessageBox(str);
}
if1.close();//关闭文件
运行结果见图2。
图2 读取文件的结果
值得注意的是,ifstream类中的析取器(>>)只适用天数据与数据之间是空隔(’ ’)或制表符(’\t’)分隔的情况,对于其他的分隔符,如’,’,’;’等,若仍按上述方式读取,则会发生错误。针对这个问题,本文介绍第二种数据读取的方法。
2.2采用CStdioFile类
采用CStdioFile类从第一节生成的文件“数据记录.txt”中读取数据,实现的代码如下:
CString string,str;//定义两个Cstring类
int i; //定义一个整型变量
float f; //定义一个单精度浮点型变量
double d; //定义一个双精度浮点型变量
CStdioFile file("数据记录.txt",CFile::modeRead);//创建CstdioFile对象
while(file.ReadString(string))//读取出一行中的所有字符
{
string.Replace(',',' '); //将字符中的逗号’,’用空格’ ’替换掉
string.Replace(';',' ');//将字符中的分号’;’用空格’ ’替换掉
sscanf(string,"%d%f%lf",&i,&f,&d);//提取数据
str.Format("%d %f %lf",i,f,d);
MessageBox(str);
}
file.Close();//关闭文件
程序运行的结果同图2。
代码段string.Replace(',',' ')及string.Replace(';',' ')将读取的字符串中的逗号’,’及分号’;’用空格’ ’替换掉,从而为后面提取数据打下基础。因此采用CStdioFile类从文件中读取数据比采用fstream类更为灵活。- VC++中对文件的写入和读取
- VC++中对文件的写入和读取
- VC++中对文件的写入和读取
- vc++对文件的读取,写入操作
- VC++中XML文件的解析读取写入
- C++对txt文件的读取和写入
- c++对txt文件的读取和写入
- Dom4J对XML文件的读取和写入
- C++学习笔记:对文件流的写入和读取
- DOM对象对xml文件的读取和写入
- 一种对文件读取和写入数据的方法
- IO流对文件读取和写入
- C#中读取文件和写入文件的类
- 文件的读取和写入
- ******************* 文件的写入和读取 *******************
- 文件的读取和写入
- 文件的读取和写入
- 文件的读取和写入
- JavaScript继承方法总结
- 程序员的奋斗史(一)——浅谈几种主要编程语言
- Oracle10g EM乱码之快速解决
- System Information for Windows,很不错的工具软件
- 我的时间管理--无压学习,快乐生活
- VC++中对文件的写入和读取
- html select 跳转
- Fortran函数(1):子程序、函数——出自《Fortran 95 程序设计》 彭国伦
- 比较bash和perl的比较运算符(纠结)
- 解决main.out.xml文件出现问题---android开发
- Android部分控件示例汇总
- 理解Linux中断 (3)
- poj 2001 Shortest Prefixes
- Linux vi常用命令--2