說,像這樣的結構:如何使用可以在c中讀取的python編寫二進制結構?
typedef struct testVertex_s {
char *vert_name; //for test only...
float x;
float y;
float z;
}testvertex_t;
如何編寫一個二進制文件使用Python?我想用c中的fread讀取它;
說,像這樣的結構:如何使用可以在c中讀取的python編寫二進制結構?
typedef struct testVertex_s {
char *vert_name; //for test only...
float x;
float y;
float z;
}testvertex_t;
如何編寫一個二進制文件使用Python?我想用c中的fread讀取它;
爲什麼它必須是二進制的?文本是微不足道的,而且更容易與之交互。
如果您確實需要二進制文件,請使用struct模塊。請務必定義您的字節順序,並分別讀取中的每個字段中的C,do 而不是嘗試將單個fread()
變成C結構。
你可以做包裝,像這樣:
import struct
out = open("myvertex.bin", "wb")
string = "hello"
fmt = "<%usfff" % (1 + len(string))
out.write(struct.pack(fmt, string, 3.14, 47.11, 17))
此寫入字符串作爲一個普通的0結尾的字符串,由花車緊隨其後。從上面得到的數據是"hello\x00\xc3\[email protected]\xa4p<B\x00\x00\x88A"
(表示爲Python字符串文字)。
對於這種情況,您將需要動態分配當然應該是顯而易見的字符串。
在您的程序之外定義的結構中有char *是否真的有意義?它如何指向任何有用的東西? – c0m4