C++ 二进制文件删除某一行

来源:百度知道 编辑:UC知道 时间:2024/06/02 13:47:26
我把许多条信息(每条信息包括学号,姓名,联系电话等)写进了二进制文件。
然后我想把其中一条信息删除,如张三的信息。
我可以从二进制文件中张三的信息读出来,但不知道该怎么把张三的信息彻底从二进制文件中删除,我该如何操作?请举下例子。
还有修改呢,如果张三的联系电话要更改,该怎么修改张三二进制文件中文件的信息呢?
源文件怎么清空啊?
如果不行,该怎么操作,能举下例子吗?
先加点分吧。
book.Available='A';这句是什么意思?
其它我大概明白了。
现在我做的是学生管理系统,应该和你的图书馆管理系统有类似,我需要你完整的代码,邮箱goodgoodbob@tom.com.
谢谢你了!

文件好像不能直接删除一行的,只有把他读取出来存到另一个文件里,读取的时候不要的那行跳过,然后把源文件清空,再把另一个文件的内容读取出来,存到原来的那个文件里,修改也只能这么做....要是数据库的话,就能直接删除和修改了
==================================
以前做的一个简单的图书馆管理系统,里面设计文件改写,你看下这段代码把
void RecordReturn::ReturnBook()
{
cout<<"Enter Book Code :";
cin>>BookCode;
//**********修改文件内容**************************************
fstream in;
in.open("book.dat",ios_base::in|ios_base::binary);
if(!in)
{ cout<<"打开失败";return;}
fstream temp;
temp.open("temp.dat",ios_base::out|ios_base::binary);
Book book;
in.read((char*)&book,sizeof(book));
while(!in.eof()) //将文件内容修改后临时寸到另一个文件中
{
if(book.Code==BookCode)
{
book.Available='A';
}
temp.write((char*)&book,sizeof(book));
in.read((char*)&book,sizeof(book));
}
in.close();
temp.close(); //修改完成,将原文件清空,并将临时文件内容复制回原文件

temp.open(&qu