void modify(char name[50]){ fstream file; int flag = 0; file.open("Contacts.dat",ios::binary|ios::in|ios::out); Contacts obj; while(file.read((char*)&obj,sizeof(obj))){ if(strcmp(obj.getName(),name) == 0){ obj.print(); cout<<"请依次输入修改信息:"<<endl; obj = Set(obj); obj.print(); file.seekp(0); file.write((char*)&obj,sizeof(obj)); flag = 1; } } if(flag == 0){ cout<<"未查询到联系人信息"<<endl; }else{ cout<<"修改成功"<<endl; } file.close(); }添加注释
时间: 2024-03-19 12:39:53 浏览: 58
//定义一个名为modify的函数,参数为名字name
void modify(char name[50]) {
//创建一个名为file的文件流,打开"Contacts.dat"文件,并以二进制形式读写数据
fstream file;
//定义一个标记flag,用于记录是否找到要修改的联系人信息
int flag = 0;
file.open("Contacts.dat", ios::binary | ios::in | ios::out);
//创建一个名为obj的Contacts类对象
Contacts obj;
//循环读取文件中的数据,直到读到文件结尾
while (file.read((char*)&obj, sizeof(obj))) {
//如果找到了要修改的联系人信息
if (strcmp(obj.getName(), name) == 0) {
//调用print函数输出obj对象的信息
obj.print();
//输出提示信息,让用户输入修改后的联系人信息
cout << "请依次输入修改信息:" << endl;
//调用Set函数给obj对象赋新值
obj = Set(obj);
//调用print函数输出修改后的obj对象的信息
obj.print();
//将文件指针移动到当前位置
file.seekp(file.tellg() - sizeof(obj));
//将修改后的obj对象以二进制形式写入文件中
file.write((char*)&obj, sizeof(obj));
//将标记flag置为1,表示已经找到并修改了联系人信息
flag = 1;
}
}
//如果未找到要修改的联系人信息,则输出提示信息
if (flag == 0) {
cout << "未查询到联系人信息" << endl;
} else {
//否则输出修改成功信息
cout << "修改成功" << endl;
}
//关闭文件流
file.close();
}
阅读全文
相关推荐


















