From aa63afb9d882f9323fede68701c9d3816b4a3ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre=20=E2=9C=8F?= Date: Sat, 19 Nov 2016 14:58:55 +0100 Subject: [PATCH] =?UTF-8?q?S'assure=20que=20les=20informations=20de=20d?= =?UTF-8?q?=C3=A9bogage=20vont=20dans=20stderr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/display.h | 12 +++++------- src/display.c | 38 +++++++++++++++++++------------------- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/inc/display.h b/inc/display.h index 0827cb8..d6b32b4 100644 --- a/inc/display.h +++ b/inc/display.h @@ -6,15 +6,14 @@ typedef struct HufTree HufTree; /** - * Écrire sur la sortie standard à la manière de printf, - * seulement si le mode verbeux est actif + * Écrire des données de débogage sur la sortie d'erreurs standard + * (seulement si le mode verbeux est actif) */ void printVerbose(const char* format, ...); /** - * Active ou désactive l'affichage des messages verbeux - * (mode verbeux). Si activé, `printVerbose` écrit sur - * la sortie standard. Sinon, `printVerbose` n'a pas d'effet + * Active ou désactive l'affichage des messages de débogage (mode verbeux) + * sur la sortie d'erreurs standard */ void setVerbose(int); @@ -24,8 +23,7 @@ void setVerbose(int); int isVerbose(); /** - * Afficher sur la sortie standard l'arbre passé - * en paramètre + * Afficher sur la sortie standard l'arbre passé en paramètre */ void printTree(HufTree tree); diff --git a/src/display.c b/src/display.c index 6524cb4..3af889d 100644 --- a/src/display.c +++ b/src/display.c @@ -32,7 +32,7 @@ void printVerbose(const char* format, ...) { va_list args_list; va_start(args_list, format); - vprintf(format, args_list); + vfprintf(stderr, format, args_list); va_end(args_list); } } @@ -57,12 +57,12 @@ void _printVertex(HufVertex vert, wchar_t* buffer, int length) { if (vert.child_l != NULL && vert.child_r != NULL) { // Affichage d'un sommet avec enfants, on montre // la probabilité somme des enfants - printf("■\n"); + printVerbose("■\n"); // Affichage du fils gauche. Augmentation du préfixe // pour l'affichage des enfants du fils gauche buffer[length] = '\0'; - printf("%ls├── ", buffer); + printVerbose("%ls├── ", buffer); buffer[length] = L'│'; buffer[length + 1] = ' '; @@ -74,14 +74,14 @@ void _printVertex(HufVertex vert, wchar_t* buffer, int length) { // Affichage du fils droite. Augmentation du préfixe // pour l'affichage des enfants du fils droit buffer[length] = '\0'; - printf("%ls└── ", buffer); + printVerbose("%ls└── ", buffer); buffer[length] = ' '; _printVertex(*vert.child_r, buffer, length + 4); } else { // Affichage d'une feuille de l'arbre, correspondant // à un caractère du corpus - printf("%c\n", _safeChar(vert.name)); + printVerbose("%c\n", _safeChar(vert.name)); } } @@ -97,44 +97,44 @@ int _maxDepth(HufVertex vert) { } void printFrequenciesTable(double* table, size_t size) { - printf("┌─┬────┬─────────┐\n"); - printf("│C│code│fréquence│\n"); - printf("├─┼────┼─────────┤\n"); + printVerbose("┌─┬────┬─────────┐\n"); + printVerbose("│C│code│fréquence│\n"); + printVerbose("├─┼────┼─────────┤\n"); double sum = 0; for (size_t i = 0; i < size; i++) { if (table[i] != 0) { - printf("│%c│%4d│%9.4lf│\n", _safeChar(i), (int) i, table[i]); + printVerbose("│%c│%4d│%9.4lf│\n", _safeChar(i), (int) i, table[i]); sum += table[i]; } } - printf("├─┴────┼─────────┤\n"); - printf("│ Total│%9.4lf│\n", sum); - printf("└──────┴─────────┘\n"); + printVerbose("├─┴────┼─────────┤\n"); + printVerbose("│ Total│%9.4lf│\n", sum); + printVerbose("└──────┴─────────┘\n"); } void printLabelsTable(char** table, size_t size) { - printf("┌─┬────┬────────────────┐\n"); - printf("│C│code│ étiquette│\n"); - printf("├─┼────┼────────────────┤\n"); + printVerbose("┌─┬────┬────────────────┐\n"); + printVerbose("│C│code│ étiquette│\n"); + printVerbose("├─┼────┼────────────────┤\n"); double total_length = 0; size_t label_count = 0; for (size_t i = 0; i < size; i++) { if (table[i] != 0) { - printf("│%c│%4d│%16s│\n", _safeChar(i), (int) i, table[i]); + printVerbose("│%c│%4d│%16s│\n", _safeChar(i), (int) i, table[i]); total_length += strlen(table[i]); label_count++; } } - printf("├─┴────┴───┬────────────┤\n"); - printf("│Long. moy.│%12.4lf│\n", total_length / label_count); - printf("└──────────┴────────────┘\n"); + printVerbose("├─┴────┴───┬────────────┤\n"); + printVerbose("│Long. moy.│%12.4lf│\n", total_length / label_count); + printVerbose("└──────────┴────────────┘\n"); } char _safeChar(char input) {