C++ 如何在c++;
嘿,我在名称之间添加空格时遇到了问题。我使用了getline函数从用户添加名称,另外我使用的是字符串数据类型 以下是代码:C++ 如何在c++;,c++,string,cin,getline,C++,String,Cin,Getline,嘿,我在名称之间添加空格时遇到了问题。我使用了getline函数从用户添加名称,另外我使用的是字符串数据类型 以下是代码: void health_clinic:: new_patientdata(health_clinic record[size],int i) { cout<<"\nEnter name :"; getline(cin,record[i].name); cout<<"\nEnter email :
void health_clinic:: new_patientdata(health_clinic record[size],int i)
{
cout<<"\nEnter name :";
getline(cin,record[i].name);
cout<<"\nEnter email : ";
getline(cin,record[i].email);
cout<<"Enter phone number :";
getline(cin,record[i].p_no);
cout<<"Enter weight in kg :";
cin>>record[i].weight;
cout<<"Enter height in meters ";
cin>>record[i].height;
}
void health\u clinic::新建患者数据(health\u clinic record[size],int i)
{
cout健康诊所管理患者,患者管理自己的数据
您可以在中运行/签入此代码
代码
#include <iostream>
#include <string>
#include <vector>
class Patient
{
private:
std::string phoneNumber;
std::string name;
std::string email;
float weight;
float height;
public:
void SetName(const std::string &name)
{
this->name = name;
}
void SetEmail(const std::string &email)
{
this->email = email;
}
void SetPhoneNumber(const std::string &phoneNumber)
{
this->phoneNumber = phoneNumber;
}
void SetWeight(const float &weight)
{
this->weight = weight;
}
void SetHeight(const float &height)
{
this->height = height;
}
std::string GetName()
{
return this->name;
}
std::string GetEmail()
{
return this->email;
}
std::string GetPhoneNumber()
{
return this->phoneNumber;
}
float GetWeight()
{
return this->weight;
}
float GetHeight()
{
return this->height;
}
public:
};
class HealtClinic
{
private:
std::vector<Patient> patients;
public:
void AddPatient()
{
Patient p;
std::cout << "\nEnter name : ";
std::string sdata;
std::getline(std::cin, sdata);
p.SetName(sdata);
std::cout << "\nEnter email : ";
std::getline(std::cin, sdata);
p.SetEmail(sdata);
std::cout << "Enter phone number : ";
std::getline(std::cin, sdata);
p.SetPhoneNumber(sdata);
int idata;
std::cout << "Enter weight in kg : ";
std::cin >> idata;
p.SetWeight(idata);
std::cout << "Enter height in meters: ";
std::cin >> idata;
p.SetHeight(idata);
patients.push_back(p);
}
void ShowPatients()
{
std::cout << "--- PATIENTS ---" << std::endl;
for (int i = 0; i < patients.size(); i++)
{
std::cout << "--- " << i << std::endl;
std::cout << "Name: " << patients[i].GetName() << std::endl;
std::cout << "Email: " << patients[i].GetEmail() << std::endl;
std::cout << "Phone number: " << patients[i].GetPhoneNumber() << std::endl;
std::cout << "Weight: " << patients[i].GetWeight() << std::endl;
std::cout << "Height: " << patients[i].GetHeight() << std::endl;
std::cout << std::endl;
}
}
};
int main()
{
HealtClinic clinic;
clinic.AddPatient();
clinic.ShowPatients();
return EXIT_SUCCESS;
}
您是否在记录[i]中使用字符串类型变量。名称变量?是sir记录是类的数组对象。类具有名称的字符串属性。类健康诊所{private:string name;string email;string p\u no;float weight;float height;}我的水晶球告诉我,在调用此函数之前,您已经直接从cin中读取了一些内容(可能是字符或数字),但是您忘记了使用cin.ignore()
来使用'\n'
,该结束了以前的输入,而以前的读取没有读取。
Enter name : Joma
Enter email : joma@email.com
Enter phone number : 123456789
Enter weight in kg : 88
Enter height in meters: 1.8
--- PATIENTS ---
--- 0
Name: Joma
Email: joma@email.com
Phone number: 123456789
Weight: 88
Height: 1