我在 Windows Vista 上运行带有 PyDev 和 Python 3.2 的 Eclipse,并且正在学习有关 Python 和 ctypes 的教程。
但是,我发现当我调用 msvcrt.printf() 打印字符串时,在所有其他打印语句都显示之前,Eclipse 的控制台输出中不会显示该字符串。
这是我使用的确切代码:
from ctypes import *
msvcrt = cdll.msvcrt
message_string = "Hello Worlds!\n"
printf = msvcrt.printf
print(printf("Testing: %s".encode('ascii'),message_string.encode('ascii')))
print("foo")
print("why!?")
这是输出:
23
foo
why!?
Testing: Hello Worlds!
我在其他地方看到的唯一解释(对于一般的 C)提到 printf 如何被缓冲并且在显示之前需要换行符,但是字符串中有换行符,我还直接在 printf 语句中添加了一个('printf("Testing : %s\n",...') 并没有什么区别。
我想在 Eclipse 中工作,我不想每次我想测试脚本时都打开命令提示符,那么有什么方法可以在控制台输出中修复这个顺序吗?为什么会这样?