S'assure que les informations de débogage vont dans stderr
This commit is contained in:
parent
bd0c0afd89
commit
aa63afb9d8
|
@ -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);
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue