Fermer2
ThibautLe 15/11/2009 à 23:20
Je viens de passer 1 heure à chercher ce qui pouvait bien faire boguer mon programme... Et je viens de comprendre que le bug ne vient pas de mon code mais d'un étrange comportement de printf doom


Compilez ceci avec GCC :
#include <time.h>
#include <stdio.h>


int main(int argc, char *argv[]) {
    time_t  now=  0;
    time_t  last= 0;
    
    while (1) {
        now= time(NULL);
        if (now != last) {
            last= now;
            printf("1 SECONDE...\n");
        }
    }
    
    return (0);
}
Comme on s'y attend, 1 SECONDE s'affiche une fois par seconde.


Maintenant, compilez ceci (la seule différence avec le code d'au-dessus, c'est qu'il n'y a pas de \n à la fin du printf) :
#include <time.h>
#include <stdio.h>


int main(int argc, char *argv[]) {
    time_t  now=  0;
    time_t  last= 0;
    
    while (1) {
        now= time(NULL);
        if (now != last) {
            last= now;
            printf("1 SECONDE... ");
        }
    }
    
    return (0);
}
Plus rien ne s'affiche confus