📄 deleterecord.cpp
字号:
//deleteRecord.cpp
//删除记录
#include "begin.h"
void basic::deleteRecord( fstream f )
{
bargain peijian;
int choice ; char key1[a];
char key2[c] ; char *s="end"; char d;
bargain blankItem = { "end","","","", 0,0.0,0.0 };
f.seekp( 0, ios::end ) ; // 读指针移到文件末尾
long posEnd = f.tellp() ; // 记录文件尾位置
cout << "********** 删除记录 **********\n" ;
while (1)
{ cout << "请选择操作:\n"
<< "1--删除记录 0--退出\n" ;
cin >> choice ;
switch ( choice )
{ case 1:
{ f.seekp( 0, ios::beg ); // 从文件头开始检索
cout << "请输入代号和简称:\n?代号: " ; cin>>key1 ;// 输入代号和简称进行查找
cout <<"?简称:"; cin >>key2;
do // 按代号和简称查找,读数据赋给结构变量peijian
{ f.read((char *) & peijian, sizeof(struct bargain)) ;
} while ((strcmp( peijian.id,key1) || strcmp(peijian.jiancheng,key2)) && f.tellg() != posEnd ) ;
if (!strcmp(key1,peijian.id) && !strcmp(key2 ,peijian.jiancheng)&& peijian.id != s ) // 找到记录
{cout <<setiosflags(ios::left)<<setw(10)
<<peijian.id<<setw(12)<<peijian.name<<setw(30)
<<peijian.jiancheng<<setw(10)<<peijian.type <<setw(3)
<<setprecision(2)<<resetiosflags(ios::left)
<<setiosflags(ios::fixed|ios::showpoint)<<peijian.account<<setw(11)
<<peijian.price<<endl;
cout <<"真的删除吗?(Y--删除,N--返回)"<<endl;
cin >> d;
if(d=='Y'||d=='y')
{
f.seekp( -long( sizeof( bargain ) ), ios::cur ); // 文件指针复位
f.write( (char *) & blankItem , sizeof( bargain ) ) ; // 删除文件记录
cout << "记录已删除成功!\n";
}
}
else cout << "不能删除,不存在该记录。\n";
break ;
}
case 0 : return ;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -