c++中如何用函数传递fstream类型

就是在一个函数中..我想要传递一个fstream类型的形参...不过总是成功不了!~有谁能给个例子么?~!!谢谢~~~... 就是在一个函数中..我想要传递一个fstream类型的形参...不过总是成功不了!~有谁能给个例子么?~!!谢谢~~~ 展开
 我来答
天蝎神经侠侣
高粉答主

推荐于2018-04-05 · 关注我不会让你失望
知道大有可为答主
回答量:7533
采纳率:67%
帮助的人:706万
展开全部
用 fstream 类型作为函数的参数传递时, 由于fstream的拷贝构造函数 是private, 因此在传递参数时,fstream不允许调用其拷贝构造函数,则编程写为下面这种形式会报错:

void Openfile(fstream f) {

}

编译时会出现错误:
error C2248: “std::basic_ios<_Elem,_Traits>::basic_ios”: 无法访问 private 成员(在“std::basic_ios<_Elem,_Traits>”类中声明)
因此在用 fstream作为参数时,应为引用,如:
void Openfile(fstream & f) {
WX413027075
推荐于2016-02-04 · 超过19用户采纳过TA的回答
知道答主
回答量:158
采纳率:0%
帮助的人:0
展开全部
#include<iostream>
#include<fstream>
#include<assert.h>
using namespace std;
void func(fstream &);
int main(void)
{
fstream fp;
fp.open("x.txt",ios::in|ios::out);
assert(fp.is_open());
func(fp); //你要的
return 0;
}
void func(fstream &fp)
{
cahr ch[12]="记得要创建x.txt,不然可能错误";
for(int i=0;i<12;i++)
fp.puts(ch[i]);
fp.close();
}
//由于我这没有编译器,要是错误给我发信息
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盐蒂毕4174
2009-09-03
知道答主
回答量:52
采纳率:0%
帮助的人:0
展开全部
例如定义函数:void fun(你要传的参数类型)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-09-03
展开全部
形参要用引用传递:fstream &fs
呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
630103173
2009-09-03 · TA获得超过232个赞
知道答主
回答量:227
采纳率:0%
帮助的人:128万
展开全部
void func(fstream &fs);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式