gpt4 book ai didi

c++ - c++文件处理错误--调用 `std::basic_fstream>::open(const char[8], bool)'没有匹配函数

转载 作者:行者123 更新时间:2023-11-28 00:35:08 26 4
gpt4 key购买 nike

我正在尝试一个文件处理程序来输入一条记录,并在另一个程序中尝试删除一条记录。我似乎遇到了这个错误-

没有匹配函数来调用 `std::basic_fstream >::open(const char[8], bool)'

对于每个包含 ios::binary 声明的 f.open 语句。

这是代码

这个是用来录入的

#include<iostream.h>
#include<fstream.h>

class employee
{
int code;
char name[20];
char desig[15];
float salary;

public: void get_emp();
};

void employee:: get_emp()
{
cout<<"Code--> ";
fflush(stdin);
cin>>code;
cout<<"Name--> ";
fflush(stdin);
gets(name);
cout<<"Designation--> ";
fflush(stdin);
gets(desig);
cout<<"Salary--> ";
fflush(stdin);
cin>>salary;
}

int main()
{
fstream f;
char ch;
f.open("EMP.dat", ios::binary||ios::app);
employee emp;
cout<<"Enter data:\n";
do
{
emp.get_emp();
f.write((char*)&emp,sizeof(emp));
cout<<"Entre more???(y/n)";
cin>>ch;
}while((ch=='y')||(ch=='Y'));
f.close();
system("pause>null");
return 0;
}

这是为了删除记录

#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
struct employee
{
int code;
char name[20];
char desig[15];
float salary;
}emp;

int main()
{
int xcode; //temporary declaration for employee code
int flag = 0;
fstream ef, tf;
//ef opened for reading, tf opened for transferring all records including modified record
ef.open("EMP.dat", ios::binary|| ios::in);
tf.open("TEMP.dat", ios::binary|| ios::out);
cout<<"Enter employee code to delete:";
cin>>xcode;
while(ef)
{
if(!ef)
exit(0);
ef.read((char*)&emp, sizeof(emp));
if(emp.code == xcode)
{
flag = 1;
}
else
tf.write((char*)&emp, sizeof(emp));
}
ef.close();
tf.close();
if(flag == 1)
cout<<"Record deleted.";
else
cout<<"Not found.";
fstream xf, yf;
//tf opened for reading
xf.open("TEMP.dat", ios::binary||ios::in);
//ef opened for copying all records from TEMP.dat
yf.open("EMP.dat",ios::binary||ios::out);
while(xf)
{
if(!xf)
exit(0);
xf.read((char*)&emp, sizeof(emp));
yf.write((char*)&emp, sizeof(emp));
}
xf.close();
yf.close();
system("pause");
return 0;
}

请帮忙。我的考试需要它。

谢谢

最佳答案

按位或是单竖线 (|),而不是双竖线。

关于c++ - c++文件处理错误--调用 `std::basic_fstream<char, std::char_traits<char>>::open(const char[8], bool)'没有匹配函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21225874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com