Public feed #529152

wacco

public c v1 · immutable
Raw Edit
·published 2007-06-01 20:17 UTC
rendered paste body
/* Runlength encoder - wacco * Public domain */#include <stdio.h>void rle_encode(FILE *in, FILE *out) {  char prev = fgetc(in), cur = fgetc(in);  unsigned char n = 0;  if(cur == EOF) {    if(prev != EOF)      fputc(prev, out);    return;  }  if(prev == cur)    n++;  prev = cur;  while((cur = fgetc(in)) != EOF) {    if(prev == cur && n != 255)      n++;    else {      fputc(prev, out);      if(n) {        fputc(prev, out);        fputc(n - 1, out);      }      n = 0;    }    prev = cur;  }  fputc(prev, out);}int main() {  FILE* input;  FILE* output;    input = fopen("input.hex", "r");  output = fopen("output.hex", "w");  rle_encode(input, output);  return 0;}