void add(){ ofstream outFile; outFile.open("Contacts.dat",ios::binary|ios::app); Contacts obj; obj = Set(obj); obj.print(); outFile.write((char*)&obj,sizeof(obj)); cout<<"添加成功"<<endl; outFile.close(); }添加注释
时间: 2024-03-19 14:40:07 浏览: 83
//定义一个名为add的函数
void add() {
//创建一个名为outFile的输出文件流,打开"Contacts.dat"文件,并以二进制形式追加写入数据
ofstream outFile;
outFile.open("Contacts.dat", ios::binary | ios::app);
//创建一个名为obj的Contacts类对象,调用Set函数给obj对象赋值
Contacts obj;
obj = Set(obj);
//调用print函数输出obj对象的信息
obj.print();
//将obj对象以二进制形式写入outFile文件流中
outFile.write((char*)&obj, sizeof(obj));
//输出添加成功信息
cout << "添加成功" << endl;
//关闭outFile文件流
outFile.close();
}
相关问题
void delete_add(Contacts obj){ ofstream outFile; outFile.open("1.dat",ios::binary|ios::app); outFile.write((char*)&obj,sizeof(obj)); outFile.close(); } int del_one(char name[50]){ ifstream inFile; int flag = 0; inFile.open("Contacts.dat",ios::binary); Contacts obj; while(inFile.read((char*)&obj,sizeof(obj))){ if(strcmp(obj.getName(),name) == 0) { flag = 1; cout<<"删除成功:"<<endl; }else{ delete_add(obj); } } if(flag == 0){ cout<<"无此联系人,删除失败!"<<endl; }else{ return 1; } inFile.close(); }添加注释
//定义一个函数,将联系人对象写入文件中
void delete_add(Contacts obj){
ofstream outFile; //定义一个输出文件流对象
outFile.open("1.dat",ios::binary|ios::app); //以二进制和追加的方式打开文件
outFile.write((char*)&obj,sizeof(obj)); //将联系人对象写入文件
outFile.close(); //关闭文件流
}
//定义一个函数,用于删除指定姓名的联系人
int del_one(char name[50]){
ifstream inFile; //定义一个输入文件流对象
int flag = 0; //标记是否找到要删除的联系人
inFile.open("Contacts.dat",ios::binary); //以二进制的方式打开文件
Contacts obj; //定义一个联系人对象
while(inFile.read((char*)&obj,sizeof(obj))){ //循环读取文件中的联系人对象
if(strcmp(obj.getName(),name) == 0) //如果找到了要删除的联系人
{
flag = 1; //将标记设为1,表示找到了
cout<<"删除成功:"<<endl; //输出提示信息
}else{
delete_add(obj); //将不需要删除的联系人对象写入临时文件中
}
}
if(flag == 0){ //如果没有找到要删除的联系人
cout<<"无此联系人,删除失败!"<<endl; //输出提示信息
}else{
return 1; //返回1,表示删除成功
}
inFile.close(); //关闭文件流
}
std::ofstream outfile; outfile.open(filename, std::ofstream::out | std::ofstream::binary); 需要进行内存管理吗
在这段代码中,没有涉及到动态内存分配,因此不需要进行内存管理。std::ofstream是一个标准库的输出文件流类,outfile对象是在栈上创建的,不需要手动释放内存。同样,filename也是在栈上分配的内存,也不需要手动释放。当outfile对象超出其作用域时,会自动调用其析构函数,关闭文件并释放资源。
阅读全文