2013-12-2
一、概述
对于文件的读写操作,C++提供了更为方便强大的模式功能。我们当然可以使用传统的C-FILE*模式打开文件,也可以使用Windows提供的CreateFile函数获得文件句柄,但是考虑到跨平台和简便性,还是要数C++的iostream类对象。iostream提供了对于标准输入输出、文件读写和内存string读写的全套机制,当然,这一切都建立在类树结构的继承-派生机制之上。
1.标准I/O库的组织结构:
(istringstream/ostringstream/stringstrem)。
2. 文件的输入与输出
3.打开模式的几个问题
二、功能演示
1.文件的输出操作
① 包含fstream头文件:#include
② 建立ofstream对象:ofstream ocout;
③ 将对象与文件关联:ocout.open(“test.txt”);
④ 使用该对象将数据输出到文件test中:ocout<<”Hello,C++!”;
⑤ 关闭与文件的连接:ocout.close();
⑥清空状态:ocout.clear();
注意!单纯close文件对象不会清空记录的条件状态,因此如果重复使用同一个文件对象务必调用clear函数将其状态清空刷新!
源代码:
#include
usingnamespacestd;
int
{
}
2.读取文件中的数据
① 包含fstream头文件:#include
② 建立ifstream对象:ifstream icin;
③ 将对象与文件关联:icin.open(“test.txt”);
④ 使用该对象读取文件test中的数据到数组temp中:icin>>temp;
⑤ 关闭与文件的连接:icin.close();
p.s同上面一样,我们也可以将第2步和第3步合并成一句话:
#include "stdafx.h"
#include
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
}
如何读取空格和空格后面的字符 :
我们在写文件的时候,空格是不可避免的。但是C++只要一遇到空字符便会停止输出。这里的空字符就是空格,或者是’\0’。那么这样一来,如果我们在
文件中有空格字符,那么空格后面的字符就无法被输出到屏幕上了。怎么办呢?这时我们就可以使用getline函数来解决这个问题。
我们将test.txt的内容,改为如下:
This is a test!
源代码:
#include "stdafx.h"
#include
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char temp[100];//定义一个字符数组
icin.getline(temp,100);
}
如何读取整段文字:
cin.getline(char* cha,int num,char f);
f为结束符,当遇到f时候就停止录入。
所以我们要读取整段话,将f设为空字符’\0’即可,函数默认结束符为’\n’。
源码:
#include "stdafx.h"
#include
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char temp[100];//定义一个字符数组
icin.getline(temp,100,’\0’);
//或者icin.getline(temp,100,0);
}