这个函数参数哪里错了?

aj3423 2004-11-17 07:06:02
#include <iostream>
#include <fstream>
using namespace std;

int MY_WEAPON = 2257;

void main() {

fstream fs("save000.dat", ios::in | ios::out | ios::binary);
if(!fs) {
cerr << "cannot open file\n";
exit(1);
}
// cout << "press 'L' to list commands" << endl;
char buffer[] = "AAACCC";
modify(fs, MY_WEAPON, buffer);


fs.close();
}

void modify(fstream fs, int offset, char buf[]) {
fs.seekp(offset, ios::beg);
fs.write(buf, strlen(buf));
}

错误提示好像说modify的参数传递有问题,问题在哪儿呢?
...全文
96 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzheng318 2004-11-17
  • 打赏
  • 举报
回复
void modify(fstream *, int , char []) ;
cyy219 2004-11-17
  • 打赏
  • 举报
回复
函数都必须先定义再使用呀,不然得先在使用前先声明!
wuyu1998 2004-11-17
  • 打赏
  • 举报
回复
void modify(fstream& fs, int offset, char buf[]);

改成引用方式。
chinadragonss 2004-11-17
  • 打赏
  • 举报
回复
改成传地址,fstream的拷贝构造函数和负值函数是私有的。

#include <iostream>
#include <fstream>
using namespace std;

int MY_WEAPON = 2257;
void modify(fstream *, int , char []) ;

void main() {

fstream fs("save000.dat", ios::in | ios::out | ios::binary);
if(!fs) {
cerr << "cannot open file\n";
exit(1);
}
// cout << "press 'L' to list commands" << endl;
char buffer[] = "AAACCC";
modify( &fs, MY_WEAPON, buffer);


fs.close();
}

void modify(fstream *fs, int offset, char buf[]) {
fs->seekp(offset, ios::beg);
fs->write(buf, strlen(buf));
}
flyingjm 2004-11-17
  • 打赏
  • 举报
回复
void modify();
void main()
{....}
void modify()
{
.....
}
meiggy 2004-11-17
  • 打赏
  • 举报
回复
main函数前没有声明。
可以将整个modify函数定义在main函数前;
或者在main函数前声明该函数,再在后面定义之。
  • 打赏
  • 举报
回复
int MY_WEAPON = 2257;
void modify(fstream fs, int offset, char buf[]) ;

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧