C/C++文件读写详解(一)(ofstream、ifstream、fstream)
在实际应用中经常需要对文本文件进行读写等操作,结合自己实践应用及参考其他资料,
现在对常用内容进行整理:
1.图中展示了各个文件直接的关系
头文件 | 类型 |
iostream |
istream从流中读取 ostream写到流中去 iostream对流进行读写,从istream和ostream派生 |
头文件 | 类型 |
fstream |
ifstream从文件中读取,由istream派 ofstream写到文件中去,由ostream派生 fstream对文件进行读写,由iostream派生 |
头文件 | 类型 |
sstream |
istingstream从string对象中读取,由istream派生 ostringstream写到string对象中去,由ostream派生 stringstream对sting对象进行读写,由iostream派生 |
本次重点讨论ofstream、ifstream、fstream相关内容,即主要使用fstream文件。
2.打开文件 open()函数
ofstream out;
out.open("Hello.txt", ios::in|ios::out|ios::binary)
很多程序中,并没有显式的去调用open()函数就进行文件的操作,直接调用了其默认的打开方式,因为在stream类的构造函数中调用了open()函数,并拥有同样的构造函数,所以在这里可以直接使用流对象进行文件的操作,默认方式如下:
ofstream out("...", ios::out);
ifstream in("...", ios::in);
fstream foi("...", ios::in|ios::out);
当使用默认方式进行对文件的操作时,你可以使用成员函数is_open()对文件是否打开进行验证
3.关闭文件 close()函数
当文件读写操作完成之后,我们必须将文件关闭以使文件重新变为可访问的。成员函数close(),它负责将缓存中的数据排放出来并关闭文件。这个函数一旦被调用,原先的流对象就可以被用来打开其它的文件了,这个文件也就可以重新被其它的进程所访问了。为防止流对象被销毁时还联系着打开的文件,析构函数将会自动调用关闭函数close。
4.文本文件的读写
#include <fiostream.h>
int main () {
ofstream out("out.txt");
if (out.is_open())
{
out << "This is a line.\n";
out << "This is another line.\n";
out.close();
}
return 0;
}
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
int main () {
char buffer[256];
ifstream in("test.txt");
if (! in.is_open())
{ cout << "Error opening file"; exit (1); }
while (!in.eof() )
{
in.getline (buffer,100);
cout << buffer << endl;
}
return 0;
}
上面的例子读入一个文本文件的内容,然后将它打印到屏幕上。注意我们使用了一个新的成员函数叫做eof ,它是ifstream 从类 ios 中继承过来的,当到达文件末尾时返回true 。参考:
1.https://www.cnblogs.com/hdk1993/p/5853233.html
转载请说明出处,欢迎指正
上一篇: Nginx安装及配置
下一篇: Elasticsearch大文件搜索