1
Я использую getline, чтобы начать чтение информации из файла. Проблема в том, что он никогда не войдет в цикл while, хотя в файле есть данные для чтения. Кто-нибудь видит, что может быть проблемой? Я знаю, что мой код не может быть лучшим отформатирован, но сейчас я строго обеспокоены время (GetLine())C++ while (getline()) не работает должным образом
void loadPatients(Doctor Doctor[], int size)
{
std::ifstream patientFile;
Patient** patientInfo;
std::string Address, DoctorId, Id, Name, PhoneNumber,junk;
int patientNumber;
patientInfo = new Patient*[size];
for (int b = 0; b < size; b++)
patientInfo[b] = new Patient[10];
for (int i = 0; i < size; i++)
{
DoctorId = Doctor[i].getId();
patientFile.open(DoctorId);
patientNumber = Doctor[i].getNumberOfPatient();
for (int a = 0; a < patientNumber; a++)
{
while (getline(patientFile, Name))
{
getline(patientFile, Id);
getline(patientFile, Address);
getline(patientFile, PhoneNumber);
getline(patientFile, DoctorId);
}
patientInfo[i][a].setAddress(Address);
std::cout << Address;
patientInfo[i][a].setName(Name);
patientInfo[i][a].setDoctorId(DoctorId);
patientInfo[i][a].setId(Id);
patientInfo[i][a].setPhoneNumber(PhoneNumber);
}
patientFile.close();
}
Если он никогда не достигает цикла while, проверьте условия завершения цикла, чтобы проверить размер и количество пациентов. Используйте операторы cout и посмотрите, где они не входят –
I уже сделал это, я должен был бы, вероятно, упомянуть, что он попадает в линию до цикла while, но не вводит его –
Можете ли вы попробовать (patientFile.good()) и переместить getline (patientFile, Name) внутри время и посмотреть, идет ли оно внутри e loop –