Printf n'affiche rien
charline159
Messages postés
216
Statut
Membre
-
wytekrow Messages postés 8 Statut Membre -
wytekrow Messages postés 8 Statut Membre -
Bonjour, quand je compile le code suivant, est-ce normal que mon printf de la ligne 11 n'affiche rien ?
C'est embêtant car des fois j'aimerais vérifier mon code fonctionne, et sans affichage ça va être compliqué.
C'est embêtant car des fois j'aimerais vérifier mon code fonctionne, et sans affichage ça va être compliqué.
// File : binarytree.c
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "movietable.h"
#include "tree.h"
int main(int argc, char *argv[])
{
printf("bonjour");
MovieTitle query;
MovieTable * movieTable;
Tree tree;
if (argc < 2){
printf("Usage : ./moviesuggestion moviefile\n");
exit(EXIT_FAILURE);
}
//movieTable = MovieTable_AllocEmpty();
//MovieTable_ReadMoviesFromFile(movieTable, argv[1]);
//MovieTable_Print(*movieTable, stdout);
printf("==================\n" );
Tree_InitEmpty(&tree);
Tree_CreateFromMovieTable(&tree, *movieTable);
printf ("Tree size : %d\n", Tree_GetSize(tree));
// Tree_Print(tree, stdout);
while(1){
printf("Entry your query: ");
fgets(query, MOVIE_TITLE_MAX_SIZE,stdin);
printf("%s", query);
int comp = Tree_AutoSuggestions(tree, *movieTable, query);
if (comp == -1)
printf("No other strings found with this prefix\n");
else if (comp == 0)
printf("No string found with this prefix\n");
}
MovieTable_Destroy(movieTable);
Tree_Destroy(&tree);
exit(EXIT_SUCCESS);
}
Configuration: Linux / Chrome 88.0.4324.150
A voir également:
- Printf n'affiche rien
- Le clavier de mon telephone ne s'affiche plus - Guide
- Ma clé usb ne s'affiche pas - Guide
- Printf hexa - Forum Programmation
- Réparer lecteur cd qui affiche no disc - Forum Enceintes / HiFi
- Faites en sorte que la cellule a1 affiche exactement ce qui est montré sur cette image - Forum Excel
1 réponse
Bonjour,
pour émettre des «messages de debug» ce n'est pas judicieux d'utiliser printf, enfin plus précisément la sortie standard stdout. En effet, elle est bufferisée et avant qu'un affichage se déclenche il faut soit que le buffer soit plein, soit rajouter un retour à la ligne=\n (si le mode d'utilisation est le mode ligne, ce qui peut ne pas être toujours le cas).
Il est préférable pour ce genre de sorties d'utiliser stderr qui n'est jamais bufferisée via un fprintf →
Ce qui est encore mieux pour débuguer est d'utiliser … un debugger ????
gdb par exemple … savoir utiliser un debuger est une compétence indispensable à acquérir lorsqu'on programme.
pour émettre des «messages de debug» ce n'est pas judicieux d'utiliser printf, enfin plus précisément la sortie standard stdout. En effet, elle est bufferisée et avant qu'un affichage se déclenche il faut soit que le buffer soit plein, soit rajouter un retour à la ligne=\n (si le mode d'utilisation est le mode ligne, ce qui peut ne pas être toujours le cas).
Il est préférable pour ce genre de sorties d'utiliser stderr qui n'est jamais bufferisée via un fprintf →
fprintf(stderr, "message de debug affiché immédiatement même sans \\n");
Ce qui est encore mieux pour débuguer est d'utiliser … un debugger ????
gdb par exemple … savoir utiliser un debuger est une compétence indispensable à acquérir lorsqu'on programme.