Я печатаю оператор из классов, используя функции получения. Верхние 1,5 строки моего оператора cout не печатаются. Я попытался очистить поток, а также скопировал и вставил строки, которые не печатаются за пределами оператора if, и он распечатывает! Я не могу понять, что происходит. Вот функция:
// display all books out on loan
void displayBorrowed(vector<LibraryBook>& book)
{
cout << "Books currently checked out: " << endl << endl;
for(unsigned int i = 0; i < book.size(); i++)
{
//cout << "ID: " << book[i].getId_() << " Title: "
//<< book[i].getTitle_() << endl << endl;
if(book[i].getIsLoaned_() == true)
{
std::cout.flush();
cout << "ID: " << book[i].getId_() << " Title: "
<< book[i].getTitle_() << " Author: "
<< book[i].getAuthorFirst_() << " " << book[i].getAuthorLast_()
<< " Year Published: " << book[i].getYearPubl_() << endl
<< "Due Date: " << book[i].getDueMonth_() << "/"
<< book[i].getDueDay_() << "/" << book[i].getDueYear_()
<< " Date Borrowed: " << book[i].getBorrwdMonth_() << "/"
<< book[i].getBorrwdDay_() << "/" << book[i].getBorrwdYear_()
<< endl << "Checked out by: " << book[i].getBorrwFirst_()
<< " " << book[i].getBorrwLast_() << endl << endl;
}
}
}
Он отображает это:
Books currently checked out:
Author: Brendan Behan Year Published: 1958
Due Date: 8/2/2017 Date Borrowed: 7/21/2017
Checked out by: Cassie Peterson
Если строки в операторе if скопированы из оператора if, он отображается нормально:
ID: 78620 Название: Чжуань Фалунь
Я попытался изменить оператор if на false, чтобы отобразить все книги, не предоставленные во временное пользование, и все они отображались одинаково, за исключением самой последней книги (номер 50, наконец, отображал идентификатор # и название. Я в полной растерянности. Что происходит на?
Должно получиться так:
ID: 78620 Title: Zhuan Falun Author: Brendan Behan Year Published: 1958
Due Date: 8/2/2017 Date Borrowed: 7/21/2017
Checked out by: Cassie Peterson
(дисплей еще не отформатирован)
Я просто изменил его на это, где у меня есть каждый элемент, который не отображается в собственном операторе cout, и НИКТО не отображает !! Какие??! (до автора, я имею в виду, где он начал отображаться раньше.)
for(unsigned int i = 0; i < book.size(); i++)
{
if(book[i].getIsLoaned_() == true)
{
std::cout.flush();
cout << "ID: " ;
cout << book[i].getId_();
cout << " Title: ";
cout << book[i].getTitle_();
cout << " Author: "
<< book[i].getAuthorFirst_() << " " << book[i].getAuthorLast_()
<< " Year Published: " << book[i].getYearPubl_() << endl
<< "Due Date: " << book[i].getDueMonth_() << "/"
<< book[i].getDueDay_() << "/" << book[i].getDueYear_()
<< " Date Borrowed: " << book[i].getBorrwdMonth_() << "/"
<< book[i].getBorrwdDay_() << "/" << book[i].getBorrwdYear_()
<< endl << "Checked out by: " << book[i].getBorrwFirst_()
<< " " << book[i].getBorrwLast_() << endl << endl;
}
It prints when I put an endl at the end of each element:
if(book[i].getIsLoaned_() == true)
{
std::cout.flush();
cout << "ID: " << endl;
cout << book[i].getId_() << endl;
cout << " Title: " << endl;
cout << book[i].getTitle_() << endl;
cout << " Author: " << endl;
cout << book[i].getAuthorFirst_() << " " << book[i].getAuthorLast_() << endl;
cout << " Year Published: " << book[i].getYearPubl_() << endl;
cout << "Due Date: " << book[i].getDueMonth_() << "/" << endl;
cout << book[i].getDueDay_() << "/" << book[i].getDueYear_() << endl;
cout << " Date Borrowed: " << book[i].getBorrwdMonth_() << "/" << endl;
cout << book[i].getBorrwdDay_() << "/" << book[i].getBorrwdYear_() << endl;
cout << endl << "Checked out by: " << book[i].getBorrwFirst_() << endl;
cout << " " << book[i].getBorrwLast_() << endl << endl;
}
Books currently checked out:
ID:
47492
Title:
Borstal Boy
Author:
Brendan Behan
Year Published: 1958
Due Date: 8/
2/2017
Date Borrowed: 7/
21/2017
Checked out by: Cassie
Peterson
book[i].getId_()
? Какое значение возвращает функция? Что делаетbook[i].getTitle_()
? Какое значение возвращает функция? Нам будет очень сложно помочь вам в отладке. Вы должны выполнить некоторую отладку самостоятельно, желательно, пошагово пройдя код построчно в отладчике. Это не то, что мы можем сделать. - person Some programmer dude   schedule 19.04.2017operator<<
, возвращающей тот же поток, который был получен. Так что не имеет значения, если вы сделаетеcout << a << b;
илиcout << a; cout << b;
- person Aconcagua   schedule 19.04.2017\r
s. Проверьте строку заголовка и откуда бы вы ее ни взяли. - person T.C.   schedule 19.04.2017