如何在C语言的二进制文件中插入\0

发布于 2024-10-25 20:16:52 字数 266 浏览 5 评论 0原文

我必须将一堆字符插入到二进制文件中。

为了做到这一点,我使用 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);

你能帮忙吗?

谢谢。

I have to insert a bunch of chars to a binary file.

In order to do that I use fwrite. After that, I would like to put a \0.

I am not sure how to do it.

const unsigned char *my_word; /*my_word has no \0 at the end*/

fwrite(my_word, my_word_length_in_bytes, 1, my_file);

Can you please help?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

筱果果 2024-11-01 20:16:52

您可以使用以下内容:

fputc(0, my_file);

You can use the following:

fputc(0, my_file);
娇俏 2024-11-01 20:16:52

您需要将缓冲区 my_word 分配为 +1,然后

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

You need to have your buffer my_word alocated with +1, then

my_word[my_word_length_in_bytes]=0;
fwrite(my_word, my_word_length_in_bytes+1, 1, my_file);
寄居人 2024-11-01 20:16:52
`fputc('\0', my_file);` will do it for you
`fputc('\0', my_file);` will do it for you
非要怀念 2024-11-01 20:16:52

一个老技巧是使用空的以 null 结尾的字符串

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

An old trick is to use an empty null-terminated string

fwrite("", 1, 1, my_file);
蓬勃野心 2024-11-01 20:16:52

您可以在将 word 实际写入文件之前在其末尾连接一个 '\0' 字符(恕我直言,最好的解决方案),或者使用 0x00 字节(这是 ASCII 代码)进行第二次 fwrite '\0')。

You can either concatenate a '\0' character at the end of word before you actually write it into your file (best solution imho) or do a second fwrite with a 0x00 byte (which is ASCII code for '\0').

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文