Bonjour,

J'ai débuté la programmation C depuis 2 mois et je dois réaliser dans le cadre d'un projet un moteur d'affichage mais après quelques questions préliminaires je me trouves coincé et ne sais plus comment avancer dans ce projet. La création du moteur d'affichage regroupe plusieurs étapes:
Définition des cassures qui représentent la possibilité d'aller à la ligne, une cassure contient deux informations: l'indentation supplémentaire à appliquer en cas de retour à la ligne et le nombre d'espaces à appliquer dans le cas contraire. J'ai donc créé une structure à deux champs entiers, et pour la création d'une cassure, j'ai donc écris une fonction qui prend une cassure en paramètre et qui créé un pointeur (void*) vers la cassure et qui retourne l'adresse de la cassure, pour détruire une cassure, je fais un free sur l'adresse de la cassure.
Définition des boîtes utilisés pour spécifier l'indentation et les retours à la ligne, il en existe plusieurs types:
horizontale: ne jamais aller à la ligne
verticale: toujours aller à la ligne
horizontale et verticale: aller à la ligne seulement lorsqu'il n'y a plus de place sur la ligne courante
horizontale ou verticale: aucun retour à la ligne si tout le texte tient sur la ligne, sinon toujours retour à la ligne.
Il faut ici définir le type d'une bopite d'affichage et les fonction qui créent et détruisent les boîtes mais mon problème est que je ne comprend pas ce qu'est une boîte et ce sur quoi elle agit, d'autre part, la suite de l'énoncé ne m'aide pas à comprendre.
Afficheurs mémorisant la bopite courante, la pile des boîtes ouvertes, l'indentation courante, le nombre de caractères qui ont été écrits sur la ligne courante et l'adresse de la cassure courante. Il faut alors définir le type d'un afficheur, Définir une variable globale pour représenter la table des afficheurs et remplir les deux premières cases avec des afficheurs sur stdout et
stderr. Définir ensuite les variables globales out_formatter et err_formatter
qui contiendront les adresses des deux acheurs qui viennent d'être définis. Il faut ensuite écrire les fonctions qui ouvrent puis ferment un afficheur.
Fonctions d'affichage: il faut écrire les fonctions qui, s'il y a une cassure courante, l'applique et l'enlève ; qui affiche une chaîne de caractère sur un afficheur donné ; qui étant donné une indentation, suggère une cassure à l'afficheur ... Je n'ai pas encore abordé cette partie qui reste très flou étant donné que je me suis arrêté bien avant.

Si quelqu'un pouvait m'éclairer un peu sur tout cela, ça serais pas de refus