删除二进制文件末尾的所有0
时间: 2024-05-22 14:11:55 浏览: 11
可以通过以下步骤来删除二进制文件末尾的所有0:
1. 找到文件末尾的第一个非零字节。可以使用任何二进制编辑器或十六进制编辑器打开文件并查找最后一个非零字节的位置。
2. 将该位置后面的所有字节设置为零。可以使用任何二进制编辑器或十六进制编辑器将这些字节设置为零。
3. 保存文件并关闭编辑器。
请注意,在对二进制文件进行编辑时要非常小心,因为任何错误都可能导致文件损坏或数据丢失。在编辑文件之前,请务必备份原文件。
相关问题
删除二进制文件末尾的所有0 C语言代码
以下是删除二进制文件末尾所有0的C语言代码:
```c
#include <stdio.h>
int main() {
FILE *fp = fopen("binary_file.bin", "rb+");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
fseek(fp, 0, SEEK_END);
long int size = ftell(fp);
fseek(fp, -1, SEEK_CUR);
while (fgetc(fp) == 0 && size-- > 0) {
fseek(fp, -2, SEEK_CUR);
}
size++;
ftruncate(fileno(fp), size);
fclose(fp);
printf("Done.\n");
return 0;
}
```
这段代码打开一个二进制文件,将文件指针移到文件末尾,然后逐个读取字节,如果是0就将指针向前移动一个字节,直到遇到非0字节为止。最后使用ftruncate函数将文件截断到正确的大小,关闭文件并输出“Done”。
删除二进制文件末尾的所有0代码 C语言
可以使用以下代码来删除二进制文件末尾的所有0:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE* fp;
long size;
int c;
// 打开二进制文件
fp = fopen("binary_file.bin", "rb");
if (fp == NULL) {
perror("fopen");
exit(EXIT_FAILURE);
}
// 获取文件大小
fseek(fp, 0L, SEEK_END);
size = ftell(fp);
// 移动文件指针到文件末尾
fseek(fp, -1L, SEEK_END);
// 删除末尾的0
while (ftell(fp) >= 0 && (c = fgetc(fp)) == 0) {
size--;
fseek(fp, -2L, SEEK_CUR);
}
// 截取文件
if (size > 0) {
if (truncate("binary_file.bin", size) == -1) {
perror("truncate");
exit(EXIT_FAILURE);
}
}
// 关闭文件
if (fclose(fp) == EOF) {
perror("fclose");
exit(EXIT_FAILURE);
}
return 0;
}
```
该程序首先打开二进制文件,然后获取文件大小,并将文件指针移动到文件末尾。然后,它从文件末尾开始往前读取每个字节,直到找到第一个非零字节。接下来,它使用 `truncate` 函数截取文件,以删除末尾的所有0。最后,它关闭文件并退出程序。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)