指针运动。 为什么数字如此之高? 为什么它在块中打印信息而不是常量流?

嗨! 我正在尝试编写一个程序,我需要报告每个鼠标运动的位置。 我用PointerMotionMask掩码调用了XSelectInput()函数。 一切似乎都运行正常,但打印后的数字不会在每次移动后出现,它们以块的forms出现,而且event.xmotion.xevent.xmotion.y中的数字非常高,数十万。
造成这些大数字的原因是什么?
我的程序也是获取每个号码并立即报告它还是存储在队列中并以块的forms发送到终端?
谢谢

这是我的事件循环:

 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; } } 

除了在最后打印换行符之外,您还可以在结尾处执行'\r' ,它会将光标移动到现有行的开头,因此每次都会打印出自己的行。 为了使这项工作更好,请将数字格式更改为固定大小,例如:

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