我必須在一個二進制文件中插入一串字符。如何將 0插入到C中的二進制文件中
爲了做到這一點,我使用fwrite。之後,我想提出一個\0
。
我不知道該怎麼做。
const unsigned char *my_word; /*my_word has no \0 at the end*/
fwrite(my_word, my_word_length_in_bytes, 1, my_file);
你能幫忙嗎?
謝謝。
我必須在一個二進制文件中插入一串字符。如何將 0插入到C中的二進制文件中
爲了做到這一點,我使用fwrite。之後,我想提出一個\0
。
我不知道該怎麼做。
const unsigned char *my_word; /*my_word has no \0 at the end*/
fwrite(my_word, my_word_length_in_bytes, 1, my_file);
你能幫忙嗎?
謝謝。
您可以使用以下方法:
fputc(0, my_file);
`fputc('\0', my_file);` will do it for you
一個老訣竅是使用空的空終止字符串
fwrite("", 1, 1, my_file);
你需要讓你的緩衝my_word與+1 alocated ,然後
my_word[my_word_length_in_bytes]=0;
fwrite(my_word, my_word_length_in_bytes+1, 1, my_file);
你可以試試在實際將它寫入文件(最佳解決方案imho)之前,她在word
的末尾連接了一個'\ 0'字符,或者使用0x00字節(即'\ 0'的ASCII碼)執行第二次fwrite。
這是一個非常昂貴的方式來編寫'fputc(0,f)'... – 2011-03-25 13:16:52
這是不同的,但它的工作原理。它更昂貴,是的,'fputc(0,f)'是更好的方法。但不是世界末日。我給出了這個答案,因爲我用'pwrite'完成了類似的工作,將一個空字符寫入給定的偏移量。 – Joe 2011-03-25 13:56:05
事實上,這個技巧對文件描述符和「寫入」或類似的接口非常有用。 – 2011-03-25 14:06:22