在C中的二进制文件中写入字节0
Write byte 0 in a binary file in C
我要用C写一个二进制文件n个字节,怎么写?所有字节都必须为 0.
我正在写一个字符,但我不知道这是不是正确的方法。
int i;
for(i=0; i < 200; i++){
fwrite(0, sizeof(char), 1, file);
}
您应该指定包含要写入的数据的缓冲区。在您的情况下,您可以将 '\0' 存储在 char 变量中并传递其地址。
char c = 0;
int i;
for (i = 0; i < 200; i++)
fwrite(&c, sizeof c, 1, file);
另一个(更有效的)解决方案是直接创建一个包含 200 个元素的缓冲区:
char buff[200] = {0}; // declare array with 200 '[=11=]' bytes
fwrite(buff, 1, 200, file);
fwrite
的第一个参数必须是一个有效的指针。
您可以使用fputc
将一个立即字符(字节)写入文件,如下所示:
int i;
for(i=0; i < 200; i++){
fputc(0, file);
}
我要用C写一个二进制文件n个字节,怎么写?所有字节都必须为 0.
我正在写一个字符,但我不知道这是不是正确的方法。
int i;
for(i=0; i < 200; i++){
fwrite(0, sizeof(char), 1, file);
}
您应该指定包含要写入的数据的缓冲区。在您的情况下,您可以将 '\0' 存储在 char 变量中并传递其地址。
char c = 0;
int i;
for (i = 0; i < 200; i++)
fwrite(&c, sizeof c, 1, file);
另一个(更有效的)解决方案是直接创建一个包含 200 个元素的缓冲区:
char buff[200] = {0}; // declare array with 200 '[=11=]' bytes
fwrite(buff, 1, 200, file);
fwrite
的第一个参数必须是一个有效的指针。
您可以使用fputc
将一个立即字符(字节)写入文件,如下所示:
int i;
for(i=0; i < 200; i++){
fputc(0, file);
}