printfはsys.stdout
ではなく、本物の標準出力チャンネルへ
プリントすることに注意してください。したがって、これらの例は
コンソールプロンプトでのみ動作し、IDLEやPythonWinでは動作しません:
>>> printf = libc.printf >>> printf("Hello, %s\n", "World!") Hello, World! 14 >>> printf("Hello, %S", u"World!") Hello, World! 13 >>> printf("%d bottles of beer\n", 42) 42 bottles of beer 19 >>> printf("%f bottles of beer\n", 42.5) Traceback (most recent call last): File "<stdin>", line 1, in ? ArgumentError: argument 2: exceptions.TypeError: Don't know how to convert parameter 2 >>>
前に述べたように、必要なCのデータ型へ変換できるようにするためには、
整数、文字列およびユニコード文字列を除くすべてのPython型を
対応するctypes
型でラップしなければなりません:
>>> printf("An int %d, a double %f\n", 1234, c_double(3.14)) Integer 1234, double 3.1400001049 31 >>>
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。