Я внедряю программу для архивирования файла, используя метод сжатия кодирования по длине прогона.Есть ли способы, с помощью которых вы можете сравнить символы в файле или сравнить два файловых указателя, чтобы сделать это?
Я открыл файл (zipfilename), который я хочу сжать, и установил указатель файла с именем ftozip.Затем я попытался подсчитать количество каждого символа, используя этот файловый указатель, как показано в коде ниже (если условие).
FILE *ftozip;
ftozip = fopen(argv[1],"r");//open the file that we are zipping
if (ftozip == NULL) {//if there is an error opening
perror("File cannot be opened ");
}
char zipfilename[30];
strcat(zipfilename, argv[1]);
strcat(zipfilename,".zip");
FILE *zipfilep = fopen(zipfilename, "a"); //zipfile openned to write
int count = 1;
while(1){ //incrementing the characters and storing in the zip file
if(*ftozip == *(ftozip +1)) {
count++;
char countchar[] = (char)count+(*ftozip);
fputs(countchar, zipfilep);
ftozip++;
continue;
}
else {
count = 1;
countchar = (char)count + (*ftozip);
ftozip++;
if (feop(ftozip){
break;
}
continue;
}
}
Это приводит к этой ошибке "недопустимые операнды в двоичном == (есть 'FILE' и 'FILE')".