欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-20 18:40:52
...

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

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

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

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


基于控制台的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

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

相关标签: 文件读写