C++中的文件读写

来源:互联网 发布:mac快捷键大全 编辑:程序博客网 时间:2024/05/19 14:50

在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类有许多函数可用来对字符串进行查找和操作,使用它们可以把文件当成单个的字符串来处理。但也有一定的局限性。把一个文件作为许多行的集合而不是一大段文本来处理,通常是很方便的


原创粉丝点击