按代码 c 拆分文件时出错
Error when split files by code c
我正在编写一个拆分文件的程序,但是在运行时遇到了一些问题,我不知道如何解决它。
给我一些干扰。所有拆分有时为 0kb 的文件,有时都有数据。这让我感到困惑。
#include <stdio.h>
#include <stdlib.h>
void main()
{
char *fn = new char[250];
char *nfn = new char[250];
long int size, n, size_per_pack;
FILE *f, *ft; //file and temp file
printf("enter the file you want to split with full path : ");
scanf("%s", fn);
printf("enter the number of parts you want to split the file : ");
scanf("%ld", &n);
f = fopen(fn, "rb");
if (f == NULL)
{
printf("couldn't open file");
exit(0);
}
fseek(f, 0, 2);
size = ftell(f);
printf("the size of the file in bytes is : %ldn", size);
size_per_pack = size / n;
rewind(f);
int m = 0;
char *s1 = new char[size_per_pack];
for (int j = 1; j <= n; j++)
{
sprintf(nfn, "%s.%d", fn, j);
ft = fopen(nfn, "wb");
fread(s1, 1, size_per_pack, f);
fwrite(&s1, 1, size_per_pack, ft);
rewind(ft);
int present = ftell(f);
int present2 = ftell(ft);
}
delete[]s1;
delete[]fn;
delete[]nfn;
_fcloseall();
}
您应该在每次循环迭代后关闭输出文件:
for (int j = 1; j <= n; j++)
{
sprintf(nfn, "%s.%d", fn, j);
ft = fopen(nfn, "wb");
fread(s1, 1, size_per_pack, f);
fwrite(s1, 1, size_per_pack, ft);
fclose(ft);
}
相关文章:
- 读取文件的最后一行并输入到链接列表时出错
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- .h 和.cpp文件分离时出错,但仅使用 .h 文件时没有错误.我做错了什么?
- 在 C/C++ 中打开驻留在 "/sys/" 下的文件时出错
- 在头文件中定义变量不会出错
- 如何在多写入器情况下对文件支持的共享内存中的大页面出错
- JNI,使用两个 .so 文件时出错,其中一个文件需要另一个文件
- 生成文件中隐式规则中的 -c 标志出错
- 编译时出错 - 链接.cpp和头文件
- 从人员矢量插入和读取文件时出错
- LNK2019 在文件中调用静态成员的方法时出错.cpp
- ./main:加载共享库时出错:libopencv_highgui.so.4.0:无法打开共享对象文件:没有这样的文件或
- 猫鼬 - 包含标准C++库文件时出错
- 在f2c.h文件中定义min()max()宏时出错
- ASIOSDK;从hostsample.cpp生成mex文件时出错
- 使用emscripten将c++文件转换为wasm时出错
- 将文本从一个文件复制到另一个c++流时出错
- 在C++目录中搜索文件的函数输出中出错
- 编译包含LLVM API标头的C++文件时出错
- MySQL C++连接器:添加符号时出错:文件格式无法识别