为什么文件不是由f流创建的,或者即使输出只是垃圾值也没有创建?

时间:2018-10-18 12:34:49

标签: c++ fstream turbo-c++

我不得不使用Turbo C ++设计一个基本的医院管理系统。包括添加记录功能,一切似乎都工作正常,但是当我选择查看输入的记录(通过使用同一程序创建的主菜单)时,该功能只是开始显示随机字符的无限循环。此外,我似乎找不到在C:\ TurboC ++ \ Disk \ TurboC3 \ BIN中创建的文件。

我认为可能是由于未创建文件而出现问题,并且可能存在与该类同名的另一个文件。

p.s。我知道我使用的是古代文物,所以您不需要在第一学期就提到它,因此我仍然不了解所有技术知识,因此,如果您将语言尽可能简单地提供帮助,将不胜感激我和其他像我一样的人。

class hospital {
  int bill,
  ref,
  age;
  char disease[30],
  name[20],
  doctor[20],
  address[50],
  sex;
  public : void getdata() {
    cout<<"ENTER THE NAME OF THE PATIENT"<<endl;
    gets(name);
    cout<<endl<<"ENTER THE ADDRESS OF THE PATIENT"<<endl;
    gets(address);
    cout<<endl<<"ENTER THE NAME OF THE DIESEASE(S) OF THE PATIENT"<<endl;
    gets(disease);
    cout<<endl<<"ENTER THE SEX OF THE PATIENT(f/m)"<<endl;
    cin>>sex;
    cout<<endl<<"ENTER THE NAME OF THE DOCTOR"<<endl;
    gets(doctor);
    cout<<endl<<"ENTER THE PRESCRIPTION/REFERENCE no."<<endl;
    cin>>ref;
    cout<<endl<<"ENTER THE AGE OF THE PATIENT"<<endl;
    cin>>age;
    cout<<endl<<"ENTER THE BILL OF THE PATIENT"<<endl;
    cin>>bill;
  }
  void display() {
    cout<<endl<<"THE DETAILS OF THE PATIENT ARE AS FOLLOWS:"<<endl;
    cout<<"AGE:"<<age<<"\tREFERENCE/PRESCRIPTION no.:"<<ref;
    cout<<"\tTHE NAME OF PATIENT:";
    puts(name);
    cout<<endl<<"\tTHE NAME OF THE DOCTOR:";
    puts(doctor);
    cout<<endl<<"\tTHE DIAGNOSED/TESTED FOR DISEASE(S) IS/ARE :"<<endl;
    puts(disease);
    cout<<endl<<"THE SEX OF THE PATIENT IS "<<sex<<endl;
    cout<<endl<<"THE BILL OF THE PATIENT IS "<<bill<<endl;
    cout<<endl<<"THE ADDRESS OF THE PATIENT IS: "<<endl;
    puts(address);
  }
  int retref() {
    return ref;
  }
}

;
void main() {
  clrscr();
  hospital h;
  cout<<endl<<"\n\n\t\t\tLOADING...\n\t\tPLEASE WAIT..\n";
  system("pause");
  clrscr();
  cout<<endl<<"\tWELCOME TO THE HOSPITAL MANAGEMENT SYSTEM"<<endl;
  displayrec();
  getch();
}

此功能可以查看所有已保存的记录

void displayrec()
{
  hospital h;
  ifstream fin;
  fin.open("hospitalrecords.dat", ios: :binary);
  while(!fin.eof()) {
    h.display();
    if(fin.eof()) break;
  }
}

1 个答案:

答案 0 :(得分:0)

您不会从文件中读取任何内容,因此assertEquals( "PIN Code: [^a-z ]*([.0-9])*\\d", selenium.getText("//*[@id='RegItemContent0']/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[1]/div[3]/ul/li[2]/span") ); 总是 为假,从而导致无限循环。

您实际上需要在循环中读取一些内容,并使用读取的数据初始化eof()