ランレングス符号化を用いた符号化プログラムについて教えてください
入力用ファイルの情報を読み込み,このファイルの情報をランレングス符号化を用いて符号化し,結果を出力用ファイル名に出力するCプログラムを作成しようとしているのですが正確に符号化することができません(情報の個数が正しくカウントできない)どうすればよいのかわからないので教えていただけないでしょうか。
#include <stdio.h>
main(void){
FILE *fi;
FILE *fo;
int ccs;
unsigned char c=1;
char a,b,d;
fi=fopen("files99.txt","rb");
fo=fopen("files100.dat","wb");
fread(&a,sizeof(a),1,fi);
ccs=fread(&d,sizeof(d),1,fi);
while(ccs>0){
fread(&b,sizeof(b),1,fi);
if(a==b){
c=c+1;
} else {
fwrite(&a,sizeof(a),1,fo);
fwrite(&c,sizeof(c),1,fo);
a=b;
c=1;
}
ccs=fread(&d,sizeof(d),1,fi);
}
これでは入力用ファイルをfiles99.txtとし
出力用ファイルをfiles100.datとしています。
どこを改善すればよいのか手持ちの資料や学校の図書館を全て調べてもわかりませんでした。
どうかよろしくお願いします。