Comment utiliser la fonction getline()

Fermé
Lucky-Luke87 Messages postés 1893 Date d'inscription mardi 31 décembre 2013 Statut Membre Dernière intervention 24 janvier 2019 - 27 déc. 2016 à 23:36
Lucky-Luke87 Messages postés 1893 Date d'inscription mardi 31 décembre 2013 Statut Membre Dernière intervention 24 janvier 2019 - 29 déc. 2016 à 12:25
Bonjour,

Je suis actuellement en train de coder un petit programme gérant une bibliothèque de livres ; le problème est que lors de la saisie du titre du livre (par exemple), si des espaces se trouvent à l'intérieur de ma chaîne de caractères le programme bug complètement.
Faisant des recherches en ligne, j'ai utilisé à la saisie de chaque chaîne de caractère la fonction getline() dont voici un exemple dans mon programme :

getline(cin, biblio.livre[biblio.nbLivres].titre);

Mais je rencontre toujours le même problème, y-a-t-il quelque chose qui m'échappe?
Une bibliothèque à déclarer? Une erreur de syntaxe?


Merci d'avance!
A voir également:

1 réponse

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
28 déc. 2016 à 11:51
Bonjour,

Si le code compile, c'est qu'il ne manque aucun include et il n'a pas besoin d'une bibliothèque particulière.

getline() va bien récupérer toute la ligne (avec ses espaces) et s'arrête au line feed.
Ce qui m'intrigue plus c'est [biblio.nbLivres], qui donne l'impression d'un indice au delà du max (une table va des indices 0 à tailleTable-1).
0
Lucky-Luke87 Messages postés 1893 Date d'inscription mardi 31 décembre 2013 Statut Membre Dernière intervention 24 janvier 2019 49
Modifié par Lucky-Luke87 le 28/12/2016 à 13:59
Pour ce qui est de [biblio.nbLivres] : ceci contrôle le nombre de livres présents dans le tableau, le tableau est déclaré avec 100 cases et à chaque ajout d'un livre il est contrôlé que le tableau ne soit pas plein (càd que nbLivres soit strictement inférieur à 99).
Voudrais-tu que j'envoie une partie du code ainsi que ce qui s'affiche à l'écran?

Merci de ton aide :)
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101 > Lucky-Luke87 Messages postés 1893 Date d'inscription mardi 31 décembre 2013 Statut Membre Dernière intervention 24 janvier 2019
Modifié par Dalfab le 29/12/2016 à 12:12
Donc le dernier élément a l'indice nbLivres-1.
Par exemple quand nbLivres vaut 1, seul l'indice [0] contient un objet.
0
Lucky-Luke87 Messages postés 1893 Date d'inscription mardi 31 décembre 2013 Statut Membre Dernière intervention 24 janvier 2019 49 > Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023
29 déc. 2016 à 12:25
Oui le dernier élément sera placé à l'indice nbLivres-1, après cela le programme empêche tout simplement la saisie de livres supplémentaires.
0