如何用C语言或者C++查看一个acsii码文本文件的大小?

来源:百度知道 编辑:UC知道 时间:2024/06/01 11:48:17
老师要求做课设。比较压缩文件和原文件的大小

我已经做好。但是不知道如何显示.txt和二进制流.dat文件的大小。。

你可以用程序open文件,用fgetc读文件,比较读入的byte个数。
用二进制打开。

FILE *fin;
int c,N=0,N2=0;
char filename1[32]="a.txt";
char filename2[32]="a.dat";

if ( (fin = fopen(filename1,"rb") ) == NULL ) {
printf("\007Cann't open input file %s\n",filename1);exit(1);
};
while (!feof(fin)) {
c= fgetc(fin);
N=N+1;
}
fclose (fin);
printf ("Total number of bytes: %d in %s\n",N,filename1);

if ( (fin = fopen(filename2,"rb") ) == NULL ) {
printf("\007Cann't open input file %s\n",filename2);exit(1);
};
while (!feof(fin)) {
c= fgetc(fin);
N2=N2+1;
}
fclose (fin);
printf ("Total number of bytes: %d in %s\n",N2,filename2);

// 比较N何N2

}

好像没有专用的函数,但是可以使用int fseek(fp, 0, SEEK_END) 跳到文件结尾处,然后通过ftell(fp)得到当前位置,就是文件大小了。使用