私は Windows Vista で PyDev と Python 3.2 を使用して Eclipse を実行しており、Python と ctypes のチュートリアルを進めていました。
ただし、msvcrt.printf() を呼び出して文字列を出力すると、他のすべての print ステートメントが表示されるまで、これが 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 で作業したいのですが、スクリプトをテストするたびにコマンド プロンプトを開き続ける必要はありません。コンソール出力でこの順序を修正する方法はありますか? そして、なぜこれが起こるのですか?