2011-03-25 160 views
-1

我必須在一個二進制文件中插入一串字符。如何將 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); 

你能幫忙嗎?

謝謝。

回答

2

您可以使用以下方法:

fputc(0, my_file); 
0
`fputc('\0', my_file);` will do it for you 
0

一個老訣竅是使用空的空終止字符串

fwrite("", 1, 1, my_file); 
+1

這是一個非常昂貴的方式來編寫'fputc(0,f)'... – 2011-03-25 13:16:52

+1

這是不同的,但它的工作原理。它更昂貴,是的,'fputc(0,f)'是更好的方法。但不是世界末日。我給出了這個答案,因爲我用'pwrite'完成了類似的工作,將一個空字符寫入給定的偏移量。 – Joe 2011-03-25 13:56:05

+0

事實上,這個技巧對文件描述符和「寫入」或類似的接口非常有用。 – 2011-03-25 14:06:22

1

你需要讓你的緩衝my_word與+1 alocated ,然後

my_word[my_word_length_in_bytes]=0; 
fwrite(my_word, my_word_length_in_bytes+1, 1, my_file); 
0

你可以試試在實際將它寫入文件(最佳解決方案imho)之前,她在word的末尾連接了一個'\ 0'字符,或者使用0x00字節(即'\ 0'的ASCII碼)執行第二次fwrite。

相關問題