Windows VistaでPyDevとPython 3.2でEclipseを実行していて、Pythonとctypesに関するチュートリアルを行っていました。EclipseとPython 3:ctypesのprintf()が後続のprint()文の後にコンソール出力に表示される理由
しかし、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で作業したいので、スクリプトをテストするたびにコマンドプロンプトを開いたままにしたくないので、コンソール出力でこの順序を修正できる方法はありますか?なぜこれが起こるのですか?
私はただのctypesのチュートリアル、以下されたI後でprintf以外の関数に使用する予定です。私がこれを理解してそれを働かせる理由は、この単純な作業で何が起こっているのか理解できない場合、どのように複雑なものを理解することができるのだろうか? – Brian