mouvement du pointeur. pourquoi les chiffres sont-ils si élevés? pourquoi imprime-t-il les informations en blocs pas un stream constant?

Salut! J’essaie d’écrire un programme où je dois rapporter la position de chaque mouvement de souris. J’ai appelé la fonction XSelectInput() avec un masque PointerMotionMask . Tout semble bien fonctionner, mais les nombres après impression n’apparaissent pas après chaque mouvement, ils apparaissent en blocs et les nombres dans event.xmotion.x et event.xmotion.y sont très élevés, en centaines de milliers.
Quelle est la cause de ces grands nombres?
Mon programme reçoit-il chaque numéro et le signale-t-il immédiatement ou est-il stocké dans une file d’attente et envoyé par blocs au terminal?
Merci

Voici ma boucle d’événement:

 while(1) { XNextEvent(display, &event); switch (event.type) { case Expose: glClearColor( 1.0, 1.0, 0.0, 1.0 ); glClear( GL_COLOR_BUFFER_BIT ); glFlush(); glXSwapBuffers( display, glxwin ); break; case MotionNotify: printf("%d, %d", event.xmotion.x, event.xmotion.y); break; case ButtonPress: exit(1); default: break; } } 

En plus d’imprimer une nouvelle ligne à la fin, vous pouvez aussi faire un '\r' à la fin, cela déplacera le curseur au début de la ligne existante, de sorte qu’elle s’imprimera à chaque fois. Pour que cela fonctionne mieux, changez le formatage des chiffres pour qu’il soit de taille fixe, comme suit:

 printf("%4d, %4d \r", event.xmotion.x, event.xmotion.y); fflush(stdout) ;