- 论坛徽章:
- 0
|
本帖最后由 cjxstudent 于 2016-04-22 16:26 编辑
自己写了个C程序过滤Csv文件中的异常行,能成功编译.但发现过滤一个80M的文件后得到的的文件只有6M.明显漏掉了很多记录.
于是做了一个测试,将原文件逐字节读入,再逐字节写入新文件,发现故障如旧,请高人指点,谢谢.
代码如下:
#include<time.h>
main(int argc,char *argv[])
{
FILE *in,*outa;
if(argc!=3) //检查输入参数是否够3个
{printf("You forgot to enter a filemane\n");
exit(0);
}
if((in=fopen(argv[1],"r"))==NULL) //检查输入文件是否成功打开
{printf("cannot open infile\n");
exit(0);
}
if((outa=fopen(argv[2],"a"))==NULL) //检查输出文件是否成功以“追加方式”打开
{printf("cannot open rightfile\n");
exit(0);
}
char ch;
ch=fgetc(in);
while(ch!=EOF)
{
fputc(ch,outa);
ch=fgetc(in);
}
fclose(in);
fclose(outa);
system("pause");
}
在cmd窗口中输入 wash.exe test.del try.txt 运行
结果显示仍是漏掉了很多数据.有请问有解决的办法吗?
编译环境是win7(32位),codeblocks13.12
|
|