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

本文介绍了C++中文件输入输出的基本操作,包括文件的打开与关闭、读写操作等。详细讲解了如何使用fstream、ofstream和ifstream进行文本文件的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值