一段C++通讯录的代码 谁能帮我注释下

一段C++通讯录的代码谁能帮我注释下主要是删除的功能具体是在哪几句实现的看不懂呀谢了我会再追加20的最好详细点啊//删除联系人voidbook::del_person()... 一段C++通讯录的代码 谁能帮我注释下 主要是删除的功能具体是在哪几句实现的 看不懂呀 谢了 我会再追加20的 最好详细点啊
//删除联系人
void book::del_person()
{
ofstream outData("temp.txt", ios::out);
ifstream inData("pbook.txt", ios::in);
string sign;
cout <<endl <<"你要删除输入姓名:";
cin >>sign;
string str;
while (inData >>name)
{
getline(inData, str);
if (sign==name)
{
cout <<endl <<"你想删除的联系人:" <<endl <<endl;
cout <<setiosflags(ios::left) <<setw(17) <<name
<<" " <<number <<str <<endl;
break;
}
outData <<setiosflags(ios::left) <<setw(17) <<name
<<" " <<number <<str <<endl;
}
while (getline(inData, str))
{
outData <<str <<endl;
}
outData.close();//关闭pbook.txt文件
inData.close();//关闭temp.txt文件

ofstream out("pbook.txt", ios::out);
ifstream in("temp.txt", ios::in);
if (!out || !in)
{
cout <<endl <<"对不起不能打开文件!!!" <<endl <<endl;
system("pause");
return;
}
while (getline(in, str))
{
out<<str <<endl;
}
out.close();
in.close();
cout <<endl <<"这个人的信息已经从你的通迅录中删除!!!" <<endl <<endl;
}

}
展开
 我来答
passion_wu128
2011-01-08 · TA获得超过1168个赞
知道小有建树答主
回答量:370
采纳率:0%
帮助的人:549万
展开全部
void book::del_person()
{
ofstream outData("temp.txt", ios::out);
ifstream inData("pbook.txt", ios::in);
string sign;
cout <<endl <<"你要删除输入姓名:";
cin >>sign;
string str;
//循环这样设计,那么每个person的信息必然是存储在每一行,而且第一个字符串是name
while (inData >>name)
//inData >>name :从inData读入一个字符串,直到遇到文件结束符其值才为假
{
getline(inData, str); //读取一行字符,然后文件指针指向下一行开头;
if (sign==name)
{
//如果删除的姓名匹配则将这个人信息输出
cout <<endl <<"你想删除的联系人:" <<endl <<endl;
cout <<setiosflags(ios::left) <<setw(17) <<name
<<" " <<number <<str <<endl;
break; //跳出循环
}
//程序没有跳出出循环说明姓名不匹配,然后将这些人信息存入临时文件
outData <<setiosflags(ios::left) <<setw(17) <<name
<<" " <<number <<str <<endl;
}
while (getline(inData, str))
//这是一段无用代码,而且也不会执行,因为inData的文件指针已经指向文件尾了
{
outData <<str <<endl;
}
outData.close();//关闭pbook.txt文件
inData.close();//关闭temp.txt文件
//下面就将临时文件中的记录重新输出到原始文件,因为临时文件中存放的都是不匹配的信 息,这样就达到了删除的效果
ofstream out("pbook.txt", ios::out);
ifstream in("temp.txt", ios::in);
if (!out || !in)
{
cout <<endl <<"对不起不能打开文件!!!" <<endl <<endl;
system("pause");
return;
}
while (getline(in, str))
{
out<<str <<endl;
}
out.close();
in.close();
cout <<endl <<"这个人的信息已经从你的通迅录中删除!!!" <<endl <<endl;
}

}
OpenWrt
2011-01-08 · 超过13用户采纳过TA的回答
知道答主
回答量:55
采纳率:100%
帮助的人:12.8万
展开全部
void book::del_person()
{
ofstream outData("temp.txt", ios::out);
ifstream inData("pbook.txt", ios::in);
string sign;
cout <<endl <<"你要删除输入姓名:";
cin >>sign;
string str;
//第一个while相当于在文件中找到输入的姓名吧...
//找到后再屏幕和文件temp上打印name,number,str ,但没有删除啊
//下一个while,不断从pbook.txt中读入信息,并输出到temp.txt文件中,相当于复制吧。。好像也没有删除啊。。。
////hehe
while (inData >>name)
{
getline(inData, str);
if (sign==name)
{
cout <<endl <<"你想删除的联系人:" <<endl <<endl;
cout <<setiosflags(ios::left) <<setw(17) <<name
<<" " <<number <<str <<endl;
break;
}
outData <<setiosflags(ios::left) <<setw(17) <<name
<<" " <<number <<str <<endl;
}
while (getline(inData, str))
{
outData <<str <<endl;
}
outData.close();//关闭pbook.txt文件
inData.close();//关闭temp.txt文件

ofstream out("pbook.txt", ios::out);
ifstream in("temp.txt", ios::in);
if (!out || !in)
{
cout <<endl <<"对不起不能打开文件!!!" <<endl <<endl;
system("pause");
return;
}
while (getline(in, str))
{
out<<str <<endl;
}
out.close();
in.close();
cout <<endl <<"这个人的信息已经从你的通迅录中删除!!!" <<endl <<endl;
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式