kaigao01 2016-11-28 14:36 采纳率: 0%
浏览 990
已结题

用c++读取文件内容时遇到的问题,跪求解答~~

#include
#include
#include "sale.h"

using namespace std;

int main()
{
int iFlag=1; //循环是否结束的标志
int iOrder;
string account,password;
// char account,*password;//定义账号密码
cout<<"
******1.管理员登录*******"< cout cout cout cin>>iOrder;
switch(iOrder){
//管理员的操作
case 1:{
while(iFlag){
string saleMagAcnt,saleMagPswd;
Manager manager;
cout<<"Please input the account:"< cin>>account;
cout<<"Please input the password:"< cin>>password;
if(account.compare(manager.getAccount())==0&&password.compare(manager.getPassword())==0){
int nFlag=1;
while(nFlag){
//int nOrder=0;
manager.printOrder();
cout<<"Please input the order:";
cin>>iOrder;
switch(iOrder){
case 1:{
manager.setSaleManagerAccount(); //设置销售经理账号

                     }
                     break;            //break 放到里边和外边的区别
                     case 2:{
                          manager.setSaleManAccount( );             //设置销售员账号
                     }
                          break;
                     case 3:{
                          manager.deleteAccont();                       //删除帐号信息
                     }
                          break;
                     case 4:{manager.print();
                     }
                          break;
                     case 5:{
                          manager.printOrder();                               //打印指令
                     }
                          break;
                     case 6:{
                          manager.initial();                              //初始化
                     }
                     break;

                     case 0:{
                          nFlag=0;                                      //退出系统
                     }
                          break;
                     }
           }
      iFlag=0;
      }
      else {
           cout<<"account or password wrong! Please input again!"<<endl;      //缺少一个可以循环输入的while循环
      }
 }
 }
      break;
  //销售经理的操作
 case 2:{

 }
      break;

   //销售员的操作
 case 3:{

 }
      break;
 }
return 0;

}

#ifndef SALE_H_INCLUDED
#define SALE_H_INCLUDED
#include
using namespace std;
struct saleData{ //销售物品的结构体
int number;
char saleName[40];
long balance;
double price;
};
struct salesAccont{ //销售账户结构体
string account,password;
};
//空标志记录
class Manager{ //管理员类
private:
string account, password; //¹ÜÀíÔ±Õ˺ÅÃÜÂë
string saleMagAcnt,saleMagPwd;
public:
Manager();
string getAccount();
string getPassword();
void printOrder(); //打印指令
void setSaleManagerAccount();//设置销售经理账号
void setSaleManAccount( );//设置销售员账号
void deleteAccont(); //删除账户
void changeMsg();
void initial(); //初始化文件
int print();
int endMark(salesAccont sl);
};
class SalesManager{ //销售经理类

};
class SalesMan{ //销售员类

};
#endif // SALE_H_INCLUDED
#include
#include "sale.h"
#include
salesAccont mark={"NULL","NULL"};
Manager::Manager(){
account="manager01";
password="gk2001";
}
string Manager::getAccount(){
return account;
}
string Manager::getPassword(){
return password;
}
//打印指令
void Manager::printOrder(){
cout<<"*****1.创建销售经理用户*****"< cout cout cout cout cout cout }
//设置销售经理账号
void Manager::setSaleManagerAccount(){
salesAccont sl;
fstream slMngr("../saleSystem/salesaccount.dat",ios::out|ios::binary); //只能有out,否则打开文件失败
if(!slMngr){
cout return;
}
//slMngr.seekg(0,ios::beg);//将指针移到文件头
/*do{
slMngr.read((char*)&sl,sizeof(salesAccont));
}while(!endMark(sl));
slMngr.seekp(-long(sizeof(salesAccont)),ios::cur);*/
while(true){
cout cin>>sl.account;
cout<<"请输入密码:";
cin>>sl.password;
if(sl.account=="NULL"|| sl.account=="null") break;
slMngr.write((char*)&sl,sizeof(salesAccont)); //加入账号=
}
slMngr.close();
}

//设置销售员账号
void Manager::setSaleManAccount(){
salesAccont sl;
fstream slMn;
slMn.open("../saleSystem/salesaccount.dat",ios::out|ios::binary);
if(!slMn){
cout<<"文件打开失败!"< return;
}
// slMn.seekg(0,ios::beg);//将指针移到文件头
/* do{
slMngr.read((char*)&sl,sizeof(salesMangerAcnt));
}while(!endMark(sl));*/
cout cin>>sl.account;
cout<<"请输入密码:";
cin>>sl.password;
slMn.write((char*)&sl,sizeof(salesAccont)); //加入账号=
slMn.write((char*)&mark,sizeof(salesAccont));
slMn.close();
}
//删除成员信息
void Manager::deleteAccont(){
string key;
cout<<"please input the account you want to delete:";
cin>>key;
salesAccont sl;
fstream f1("../saleSystem/salesaccount.dat",ios::in|ios::out|ios::binary);
f1.seekg(0,ios::beg);
do{
f1.read((char*)&sl,sizeof(salesAccont));
if(sl.account!=key)
f1.write("../saleSystem/salesaccount1.dat",sizeof(salesAccont));
}while(endMark(sl));
if(sl.account!=key)
cout<<"没有此帐号"< f1.close();
}
//初始化文件
void Manager::initial(){
fstream fdat("../saleSystem/salesaccount.dat",ios::out|ios::binary);
cout char answer;
cin>>answer;
if(answer=='Y'||answer=='y'){
fdat.seekg(0,ios::beg);
fdat.write((char*)&mark,sizeof(salesAccont));
cout<<"文件已经初始化。"< }
else
cout fdat.close();
}
/*istream_iteratorii(f1);
istream_iterator eos;
vectorb (ii,eos); //将文件的内容存入容器中
vector::iterator it; //使用迭代器
for(it = b.begin() ; it<b.end();it++)
{
if(key == *it)
{
*it = ""; //如果找到要删除的内容,将对应的迭代器内容清空
}
}

ofstream wr(f1,ios::out);

for(it=b.begin() ; it<b.end();it++) //重新写回文件
{
        wr << *it <<endl;
        cout << *it<< endl;
}

}*/

//打印出文件的内容 测试文件的输出
int Manager::print(){
salesAccont sl;
fstream f1("../saleSystem/salesaccount.dat",ios::in|ios::binary);
if(f1.eof()){
cout<<"文件打开失败!";
return 0;
}
/* f1.seekg(0,ios::beg);//将指针移到文件头
// int i=0;
do{
f1.read((char )&sl,sizeof(salesAccont));
if(endMark(sl))
cout<<sl.account<<endl;
// i++;
}while(endMark(sl));//while(i<3);
/
while(true){
f1.read((char*)&sl,sizeof(salesAccont));
if(f1.eof()) break;
cout<<sl.account<<endl;
}
f1.close();
}

int Manager::endMark(salesAccont sl){ //判断是否读到文件末尾
if(sl.account!="NULL")
return 1;
return 0;
}
void Manager::changeMsg(){
string key;
cout<<"please input the account you want to delete:";
cin>>key;
salesAccont sl;
fstream f1("../saleSystem/salesaccount.dat",ios::in|ios::out|ios::binary);
/* f1.seekg(0,ios::beg);
do{
f1.read((char*)&sl,sizeof(salesAccont));
if(sl.account==key){
cout<<"请输入修改后的账号:";
cin>>sl.account;
cout<<"请输入修改后的密码:";
cin>>sl.password;
f1.write("../saleSystem/salesaccount1.dat",sizeof(salesAccont));

      }
 }while(endMark(sl));*/

}

  • 写回答

1条回答 默认 最新

  • weichangxiang 2016-11-28 14:47
    关注

    大哥,什么错误你都不说清除,那么多代码,别人那有那么多时间看你代码啊,

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?