Comment imprimer le tout à partir d'une structure de tableau en c++?
J'ai structuré un type de données appelé bookStruct et les livres est le nom de la variable associée à la bookStruct type de données. livre[10] est le tableau qui est de 10 caractères de long et dispose de 4 caractères de données, au sens du livre[0] livre [3] ont données à eux, quand le reste est vide (o valeurs). Maintenant, je veux imprimer les données qui sont déjà disponibles dans le tableau et de ne pas imprimer celles qui sont vides sinon 0. J'ai essayé le code ci-dessous, avec pas de chance.Ce que je fais mal?
for (int i=0;i<MAX_BOOKS && books[i]!='for (int i=0;i<MAX_BOOKS && books[i]!='\0';i++)
{
cout << "Book Title: " << books[i].bookTitle << endl;
cout << "Total Pages: " << books[i].bookPageN << endl;
cout << "Book Review: " << books[i].bookReview << endl;
cout << "Book Price: " << books[i].bookPrice<< "\n\n" << endl;
}
';i++)
{
cout << "Book Title: " << books[i].bookTitle << endl;
cout << "Total Pages: " << books[i].bookPageN << endl;
cout << "Book Review: " << books[i].bookReview << endl;
cout << "Book Price: " << books[i].bookPrice<< "\n\n" << endl;
}
voici la déclaration de livre struct
struct bookStruct
{
string bookTitle;
int bookPageN;
int bookReview;
float bookPrice;
};
bookStruct books[10];
Pouvez-vous ajouter le code qui déclare la struct?
Vous pouvez également montrer votre déclaration de
Veuillez expliquer ce que "à pas de chance". Est-il compiler? T-il imprimer quoi que ce soit et, dans ce cas, quoi?
Une meilleure façon de parcourir un tableau a été publié ci-dessous comme réponse, vous devez vérifier que les
Vous pouvez également montrer votre déclaration de
books
? Je vais avoir du mal à comprendre votre description de celui-ci.&& books[i]!='\0'
pourquoi avez-vous que dans la condition?Veuillez expliquer ce que "à pas de chance". Est-il compiler? T-il imprimer quoi que ce soit et, dans ce cas, quoi?
Une meilleure façon de parcourir un tableau a été publié ci-dessous comme réponse, vous devez vérifier que les
OriginalL'auteur | 2013-02-04
Vous devez vous connecter pour publier un commentaire.
C'est un peu dur de dire ce qui est demandé ici. Vous voyez, c'est très facile de simplement tenir compte du nombre de livres que vous avez stockés:
Lorsque vous ajoutez un livre, vous incrémentez
numBooks
jusqu'MAX_BOOKS
.Si vous ne voulez pas le faire, vous ne pouvez pas tester
books[i] != '\0'
parce que c'est de tester la structure à l'encontre d'un seul caractère.Au lieu de cela, vous pouvez tester
books[i].bookTitle.size() != 0
(ou, en fait,
!books[i].bookTitle.empty()
).Une autre alternative est de stocker des livres dans un
vector
au lieu d'un tableau, de sorte que vous ne avez pas à vous inquiéter au maximum des comptages et des chiffres actuels. Le vecteur peut réduire et agrandir pour vous.Selon ceci : eli.thegreenplace.net/2003/12/26/... vous pouvez initialiser tous les structs dans le tableau à 0.
Je ne crois pas que c'est pertinent, car cette structure n'est pas POD (il y a une chaîne de caractères). En utilisant le constructeur par défaut d'une chaîne devrait être suffisant.
Je vois. Merci pour l'explication!
OriginalL'auteur paddy
La surcharge de l'opérateur de sortie. E. g:
Alors vous pouvez produire à n'importe quel flux:
Faire une boucle sur tous vos livres, la copie de
std::cout
, seulement lorsqu'un livre a un titre, vous devezstd::copy_if
:Je ne sais pas, souvent, de voir la bonne façon de faire les choses vous permet de voir l'image plus grande. Je n'ai pas bricoler avec des boucles comme je sais que je reçois de la mauvaise façon. J'ai essayer de compartimenter mon code afin que je puisse le réutiliser. Ce sont de simples leçons à apprendre, et à conserver de manière agressive l'application au cours de votre programmation de carrière. C'est ce que j'essaie de faire dans toutes mes réponses, plutôt que d'être ramené à mes anciennes façons de faire les choses.
C'est joliment mis =)
OriginalL'auteur Peter Wood