c++ fstream参数_C++ fstream 详解

最近在写哈夫曼压缩,遇到了一个比较让人头疼的问题,那就是对文件的读写操作,尤其是以二进制的形式来读写,无奈C++Primer第五版上写的并不详细,很多让人困惑的地方没有涉及或者没有讲清楚。于是这几天我一直在网上看了很多这方面相关的文章,同时自己也在电脑上试了很多,觉得理解了不少,很多困惑也迎刃而解。

我们都知道,C语言里面对文件的操作是通过文件指针,以及一些相关的函数,那么C++中是如何对文件进行操作的呢?没错,就是通过 fstream 这个文件流来实现的。第一次听到文件流这个名字时,我也是一脸懵逼,总感觉这东西太抽象了,其实我们可以简单地把它理解成一个类,这样是不是清楚多了,当我们使用#include 时,我们就可以使用其中的 ifstream,ofstream以及fstream 这三个类了,也就可以用这三个类来定义相应的对象了,例如:

ifstream fin();

这样我们就定义了一个叫做fin的对象了,它就和我们自己定义的其他对象一样,可以调用ifstream类中的一些函数,可以使用ifstream类中定义的一些操作符等等。那么我们定义完这个对象后,怎么和某个文件关联起来呢?毕竟我们最终是希望它能帮我们实现对文件的操作。没错,我们可以调用它的一个成员函数来实现,如下:

fin.open("test.txt");

open()这个成员函数重载了好几种形式,上面这种是最简单的,它中间的参数是一个常量字符指针,你可以填入所要打开文件的相对路径(比如和你的.cpp文件在同一目录下你就可以直接输入文件名,注意必须是完整的文件名,包含文件拓展名,否则找不到这个文件的),也可以填入绝对路径(比如 "D:\CodeBlocks\Myprojects\0407test\test.txt"),当然,你也可以填入一个指向文件名字符串的指针常量,或者内容等于文件名的string常量,例如:

const char * c = "test.txt";

fin.open(c);

或者

const string s = "test.txt";

fin.open(s);

注意必须是指向常量的指针或string

如果不是const string 那么得这样用

string s = "test

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值