删除一个二进制文件的前四个字节的数据和末尾为0的数据 C语言代码
时间: 2023-06-18 22:07:21 浏览: 82
可以使用以下代码来删除二进制文件的前四个字节和末尾为0的数据:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char filename[] = "example.bin";
int file_size, i, j = 0;
char *buffer;
// Open binary file
fp = fopen(filename, "rb");
if (fp == NULL) {
printf("Error: failed to open file %s\n", filename);
exit(1);
}
// Get file size
fseek(fp, 0, SEEK_END);
file_size = ftell(fp);
fseek(fp, 0, SEEK_SET);
// Allocate memory for buffer
buffer = (char*) malloc(file_size);
// Read file into buffer
fread(buffer, file_size, 1, fp);
// Close file
fclose(fp);
// Remove first four bytes
for (i = 4; i < file_size; i++) {
buffer[j] = buffer[i];
j++;
}
file_size -= 4;
// Remove trailing zeros
while (buffer[file_size-1] == 0) {
file_size--;
}
// Write buffer to file
fp = fopen(filename, "wb");
if (fp == NULL) {
printf("Error: failed to open file %s for writing\n", filename);
exit(1);
}
fwrite(buffer, file_size, 1, fp);
// Close file and free buffer
fclose(fp);
free(buffer);
printf("Done!\n");
return 0;
}
```
这段代码首先打开一个二进制文件,读取文件的大小,然后分配一个缓冲区来存储文件的内容。接下来,它从缓冲区中删除前四个字节,并从缓冲区的末尾删除所有为0的字节。最后,它将修改后的缓冲区写回原始文件中,并关闭文件和释放缓冲区内存。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)