【发布时间】:2013-10-29 19:12:57
【问题描述】:
我有一些看起来像这样的简单代码:
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(),但我想知道是否有一个也可以使用的打印功能。
【问题讨论】:
-
你怎么知道是
printf抹掉了屏幕?我对mosync不熟悉,但它看起来类似于curses或ncurses;如果是这样,将它与像printf一样直接写入stdout可能是个坏主意。为什么不想使用MaDrawText()? -
这就是我正在使用的。我只是不知道为什么
printf会擦除屏幕。我不确定这对于各种 C++ 库是否正常。 -
printf擦除屏幕是不正常的,但我想 mosync 可能会将屏幕置于某种模式,其中正常字符的解释不同。我会尝试在printf之前添加类似sleep(5)的调用,以确保是printf正在这样做。了解您正在运行的环境(操作系统、终端仿真器等)也会有所帮助。