Файл выводится не так, как хотелось бы - C ++ - PullRequest
0 голосов
/ 01 мая 2020

поэтому у меня есть класс Result, который принимает входные данные из файла и отправляет входные данные другому классу Unit, чтобы прочитать некоторые детали этого класса модулей и вывести его в файл. Все работает отлично, все детали отображаются правильно. Теперь я создал еще один класс UnitCoordin (для Unit Coordinator), и этот класс принимает некоторые дополнительные входные данные из файла и сохраняет его в своем объекте в классе Unit, так что у каждого Unit есть координатор Unit.

Программа читает правильно, до тех пор, пока она не должна читать в моем классе координатора юнитов. Я знаю это, потому что в моем выходном файле все значения для Unit отображаются правильно, пока не дойдут до деталей моего Unit Unit Coordinator, в котором все беспорядок. Возможно, это немного сбивает с толку, но, пожалуйста, прочитайте мой код и файлы и попытайтесь понять. Я предполагаю, что это как-то связано с моими утверждениями input.ignore, но я попытался переместить их и поместить их точно туда, где это имеет смысл, но, похоже, ничего не работает. Пожалуйста, помогите

UNIT. cpp метод ввода:

void UNIT::SetUnit(istream &input){

  string nam;
  string idd;
  unsigned cred;
  UnitCoordin unitcoordinator1;

  getline(input,nam);
  input.ignore(0, '\n');
  getline(input,idd);
  input.ignore(0, '\n');

  input >> cred;
  input.ignore(0, '\n'); // up until here the values are read correctly

  input >> unitcoordinator1;
  input.ignore(0, '\n');


  SetName(nam);
  SetID(idd);
  SetCredits(cred);
  SetUnitCoordinator(unitcoordinator1);

}

UnitCoordin. cpp:

void UnitCoordin::SetUnitCoordin(istream &input){

    string name2;
    unsigned roomno2;
    long telephoneno2;
    string email2;

    getline(input,name2);
    input.ignore(0, '\n');
    getline(input,email2);
    input.ignore(0, '\n');

    input >> roomno2 >> telephoneno2;
    input.ignore(0, '\n');


    SetCoordinatorName(name2);
    SetEmail(email2);
    SetRoom(roomno2);
    SetTelephone(telephoneno2);


}

Выходной файл:

Student ID: 102234
Semester:   962
Unit ID:  ICT283
Unit Name: Data Structures and Abstractions
Credits: 3
Unit Coordinator: 
Room Number: 0
Telephone: 7532268
Email: Shri Rai

Marks: 12453264
Date: 7532268  7532624

Unit ID:  
Unit Name: 
Credits: 4293836982
Unit Coordinator: 
Room Number: 0
Telephone: 7532268
Email: 

Marks: 4421840
Date: 7532268  7532624

Unit ID:  
Unit Name: 
Credits: 4293836982
Unit Coordinator: 
Room Number: 0
Telephone: 7532268
Email: 

Marks: 4421840
Date: 7532268  7532624

Number of units = 3

Как вы можете видеть, вплоть до 'Credits' в моем первом объекте, выводимом в выходной файл, он прочитал нормально, а потом все испортилось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...