C/C++文件读写详解(一)(ofstream、ifstream、fstream)

在实际应用中经常需要对文本文件进行读写等操作,结合自己实践应用及参考其他资料,

现在对常用内容进行整理:

1.图中展示了各个文件直接的关系



基于控制台的I/O
头文件 类型
iostream

istream从流中读取

ostream写到流中去

iostream对流进行读写,从istream和ostream派生

基于文件的I/O
头文件 类型
fstream

ifstream从文件中读取,由istream派

ofstream写到文件中去,由ostream派生

fstream对文件进行读写,由iostream派生

基于字符串的I/O
头文件 类型
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

转载请说明出处,欢迎指正

猜你喜欢

转载自blog.csdn.net/qq_42189368/article/details/80612551