C++ Printf擦除屏幕(使用MoSync库)
我有一些简单的代码如下所示:C++ Printf擦除屏幕(使用MoSync库),c++,mosync,C++,Mosync,我有一些简单的代码如下所示: printf("Press zero or back to exit\n"); maSetColor(0x0055ff); maFillRect(10,10,100,100); maUpdateScreen(); maSetColor(0x0055ff); maFillRect(10,10,100,100); maUpdateScreen(); printf("Press zero or back to exit\n"); 这会运行,但当它像这样时: print
printf("Press zero or back to exit\n");
maSetColor(0x0055ff);
maFillRect(10,10,100,100);
maUpdateScreen();
maSetColor(0x0055ff);
maFillRect(10,10,100,100);
maUpdateScreen();
printf("Press zero or back to exit\n");
这会运行,但当它像这样时:
printf("Press zero or back to exit\n");
maSetColor(0x0055ff);
maFillRect(10,10,100,100);
maUpdateScreen();
maSetColor(0x0055ff);
maFillRect(10,10,100,100);
maUpdateScreen();
printf("Press zero or back to exit\n");
printf
擦除屏幕
为什么会这样?这是
printf()
的正常属性吗?我是否应该使用不同的打印功能来打印所有内容,而不是擦除所有内容?我知道我可以使用MoSync的MaDrawText()
,但我想知道是否有打印功能也可以工作。这是预期的行为,将在单独的屏幕中显示文本。另一种选择是允许您在绘制区域中绘制文本
您的代码可能如下所示:
//Draw the Rectangle
maSetColor(0x0055ff);
maFillRect(10,10,100,100);
//Draw the text
maSetColor(0xffffff);
maDrawText(10,10,"Press zero or back to exit");
//Update the screen to reflect changes
maUpdateScreen();
第一个示例之所以有效,是因为您在更新屏幕之前调用了函数,因此printf()不会在当前图形的顶部绘制。您如何知道是
printf
擦除了屏幕?我不熟悉mosync,但它看起来像是诅咒或咒语;如果是这样的话,将其与直接写入stdout
类似printf
可能是个坏主意。为什么不使用MaDrawText()
?这就是我正在使用的。我只是不知道为什么printf
会擦除屏幕。我不确定这是否对于各种C++库是正常的。对于代码> Prtff<代码>,屏幕是不正常的,但是我想MySyc可能会把屏幕放在一个模式中,其中不同的字符被解释。我会尝试在printf
之前添加一个类似sleep(5)
的调用,以确保是printf
在执行此操作。了解您运行的环境(操作系统、终端仿真器等)也会有所帮助。