c++下对于文件读取进行操作的方式特别类似于对标准输入输出流cin,cout
进行的操作,这里面用的头文件是#include<fstream>
其中包含了三个类fstream,ifstream,ofstream
,其中基类是fstream
,而ifstream
是对于输入特性进行拓展的继承类,其中的是
的意思。
ofstream
就是对于输出特性进行拓展的继承类,其中是
的意思。
要使用这两个类,就要像使用其他类对象一样,首先实例化,如ifstream fcin
,这样就实例化了一个ifstream
类的对象fcin
,就可以对其进行操作。
首先最要紧的就是要将这个输入流和一个文件对象连接起来,这样才能够对它进行有意义的操作。此时用到了fcin.open("example.txt")
函数,这样就成功地与文件相互关联。但是存在情况比如说文件不存在,那么就会出现文件读取失败,此时要利用fcin.fail()
函数,进行判断是否成功打开文件,可用if(fcin.fail())
对连接错误的情况进行处理。
要读入其中的信息,只用像读入cin
中的信息一样使用就好了,用到的也是<<
运算符。
比如说,你要将这个数据读入stu
中,那么就只用fcin >> stu;
即可。
当文件读取完成之后,就要把输入流和文件之间的联系进行断开。用到fcin.close()
函数。
同样的,对于ofstream
类的利用也是一样的步骤,首先实例化ofstream fcout
,然后再将其与一个待写入的文件相连接fcout.open("example.txt")
,然后如果这个文件已经存在,那么就会将其原来的内容进行清空,重新写入;如果不存在,就会创建一个这样的文件。但是fcout
函数也存在打开失败的可能性,因此也要利用if(fcout.fail())
进行文件连接错误的情况进行处理。
向文件中写入也同样用的是>>
运算符,输出的格式控制符例如setw()
也是适用的。当文件写入完成之后,利用fcout.close()
进行关闭。
如果你想要在自己的函数中调用外部打开的fstream
类,那么你可以将其变成引用,例如函数my_print(ofstream& fcout)
,这里面要用到引用的原因是>>
进行输入输出的时候,实际上是改变了原来fstream
类的值,因此必须是按引用或者是按地址传递才是有效的可以改变的函数参数传递类型。
网友评论