All pastes #422197 Raw Edit

Untitled

public c v1 · immutable
·published 2007-04-03 10:02 UTC
rendered paste body
#include <stdio.h>#include <string.h>int main(int argc, char **argv) {  int key[6][6] = {    {0, 1, 0, 1, 0, 1},    {0, 0, 0, 0, 1, 0},    {0, 0, 1, 0, 0, 0},    {0, 1, 0, 0, 1, 0},    {0, 0, 0, 0, 0, 1},    {0, 0, 0, 1, 0, 0}  };  int perm[36];  int i, j, k;  k = 0;  FILE *infile;  FILE *outfile;  char in[36];  char out[36];  for (i=0; i<6; i++)    for (j=0; j<6; j++)      if (key[i][j] == 1)        perm[k++] = 6*i+j;  for (j=0; j<6; j++)    for (i=5; i>=0; i--)      if (key[i][j] == 1)        perm[k++] = 6*j+(5-i);  for (i=5; i>=0; i--)    for (j=5; j>=0; j--)      if (key[i][j] == 1)        perm[k++] = 6*(5-i)+(5-j);  for (j=5; j>=0; j--)    for (i=0; i<6; i++)      if (key[i][j] == 1)        perm[k++] = 6*(5-j)+i;     if(argc != 3)    {        fprintf(stderr, "Usage: %s input_file output_file\n", argv[0]);        return 1;    }     if((infile = fopen(argv[1], "rb")) == NULL)    {        fprintf(stderr, "Error: cannot open %s\n", argv[1]);        return 1;    }     else if((outfile = fopen(argv[2], "wb")) == NULL)    {        fprintf(stderr, "Error: cannot open %s\n", argv[2]);        return 1;    }    int n;    char array[36000];    char *parray = array;    while(!feof(infile))    {        n = fread(in, 1, 36, infile);        if (n != 36) {          printf("error : n=%d\n", n);          break;        }        int i;        for (i=0; i<36; i++)          out[i] = in[perm[i]];        parray = strncpy(parray, out, 36);        parray += 36;    }    char *p = array;    n = 0;    while (*p++ == '#')      n++;    printf("nb de # : %d\n", n);    *(p-1) = '\0';    while (*--parray != '\0')        fwrite(parray, 1, 1, outfile);    fclose(infile);    fclose(outfile);     return 0;}