在C语言中,完成打开和处理文件这样复杂的操作,需要对C语言有较深的了解。然而C++语言的iostream提供了一种简单的方法来处理文件。
为了打开文件进行读写操作,必须包含<fstream>,如果打算使用cin,cout,最好还是显示地包含<iostream>.
为了读而打开文件,要创建一个ifstream对象,用法和cin相同;为了写而打开文件,要创建一个ofstream对象,用法和cout相同。一旦打开一个文件,就可以像处理其他iostream对象那样对它进行读写,非常简单。
在iostream库中,用getline()可以把一行读入到string对象中(以换行符结束)。getline的第一个参数是ifstream对象,从中读取内容,第二个参数是stream对象。调用完之后,string对象就装载了一行内容。
\
\
eg:将一个文件的内容拷贝到另一个文件
#include <string>
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
ifstream in("Scopy.cpp");
ofstream out("Scopy2.cpp");
string s;
while(getline(in,s))
out << s << "\n";
}
从上面的程序可以看出,为了打开一个文件,只要将欲建立的文件名交给ifstream和ofstream对象即可
#include <string>
#include <iostream>
#include <ifstream>
using namespace std;
int main()
{
ifstream in("FillString.cpp");
string s,line;
while(getline(in,line))
s += line + "\n";
cout << s;
}
\
将整个文件拷贝成单独的一个string对象
string具有动态特性,不必担心string的内存分配,只管添加新内容进去就行,string会自动扩展以保存新 的输入
把整个文件都输入到一个字符串中,好处之一就是,string类有许多函数可用来对字符串进行查找和操作,使用它们可以把文件当成单个的字符串来处理。但也有一定的局限性。把一个文件作为许多行的集合而不是一大段文本来处理,通常是很方便的\
\