Fonction de débug - Divers - Programmation
Marsh Posté le 07-09-2010 à 15:13:27
Au lieu d'une fonction qui fait le tout, tu fais une fonction qui retourne le contenu à afficher, et une qui l'imprime.
De cette manière dans A tu appelles la fonction qui récupère le contenu de B au lieu de l'afficher, et tu l'affiches à la main dans A en rajoutant une indentation devant chaque ligne.
Ca doit se faire assez simplement...
Marsh Posté le 07-09-2010 à 15:15:27
Ton truc va pas marcher si je dois afficher plusieurs lignes (genre 1 ligne par attribut)
Y'a moyen de faire des tabulations en C++ quand on utilise std::cout ?
Marsh Posté le 07-09-2010 à 15:19:18
Tabulation: \t dans les chaines et les constantes de caracteres.
Pour gerer l'indentation, j'ai plutot tendance a passer le niveau et a utiliser un manipulateur qui ajoute le nombre desire d'espace en debut de ligne (on peut aussi mettre un
Code :
|
en debut de ligne plutot que d'ecrire le manipulateur).
Marsh Posté le 07-09-2010 à 15:23:10
lezeb2000 a écrit : Ton truc va pas marcher si je dois afficher plusieurs lignes (genre 1 ligne par attribut) |
Si.
Quand tu retournes les infos tu les retournes sous forme de tableau, et t'affiches ligne par ligne en rajoutant ta tabulation...ou alors tu rajoutes une tabulation après chaque caractère newline dans la chaine retournée...ou alors etc etc.
Marsh Posté le 07-09-2010 à 15:26:12
skeye a écrit : |
Ah ouais ok j'avais pas vu ça comme ça.
Je pense que je vais juste passer un numéro de d'indentation par défaut à 0 dans la fonction, et que j'incrémente à chaque appel successif...
Du coup ça me permet aussi d'empêcher les récursions infinies
Marsh Posté le 07-09-2010 à 15:04:11
J'ai dans mon prog une liste d'objets de type A, chacun possédant des objets de type B en attributs, et de même pour B qui possède C, etc
Je souhaiterais créer une fonction de debug style "afficher infos", donc par exemple je ferai A.infos() et cette fonction printerait des infos sur A, puis appellerait la fonction infos() sur tous ses attributs de classe B.
B à son tour fait pareil pour elle même et pour ses attributs C.
Ma question est finalement un peu con : y'a t'il un moyen astucieux de gérer l'indentation ? Genre les éléments du niveau 0 ont 0 identation, ceux appellés depuis A, 1, etc...
Ou estc-e que mon idée est globalement pas la bonne?
je suis sous C++ pour infos
Message édité par lezeb2000 le 07-09-2010 à 15:04:26