/* File: carbonar.c */
/* Time-stamp: "2002-05-23 20:14:05 calvanes" */
/* Scopo: uso di file */

/* Conversione carbonari */

#include <stdio.h>

void ConvertiFile(char *filein, char *fileout);

int main(void)
{
  char nomefileinput[256], nomefileoutput[256];

  printf("Introdurre il nome del file da convertire: ");
  scanf("%12s", nomefileinput);
  printf("Introdurre il nome del file dopo la conversione: ");
  scanf("%12s", nomefileoutput);
  ConvertiFile(nomefileinput, nomefileoutput);
        
  return 0;
}

void ConvertiFile(char *filein, char *fileout)
{
  FILE *ptrfilein, *ptrfileout;
  int car;
        
  if ((ptrfilein = fopen(filein, "r")) == NULL) {
    printf("Non e` possibile aprire in lettura il file %s\n", filein);
    exit(1);
  }

  if ((ptrfileout = fopen(fileout, "w")) == NULL) {
    printf("Non e` possibile aprire in scrittura il file %s\n", fileout);
    exit(1);
  }

  car = fgetc(ptrfilein);
  while (!feof(ptrfilein)) {
    switch (car) {
    case 'A': fputc('O', ptrfileout); break;
    case 'O': fputc('A', ptrfileout); break;
    case 'B': fputc('P', ptrfileout); break;
    case 'P': fputc('B', ptrfileout); break;
    case 'C': fputc('G', ptrfileout); break;
    case 'G': fputc('C', ptrfileout); break;
    case 'D': fputc('T', ptrfileout); break;
    case 'T': fputc('D', ptrfileout); break;
    case 'E': fputc('I', ptrfileout); break;
    case 'I': fputc('E', ptrfileout); break;
    case 'F': fputc('V', ptrfileout); break;
    case 'V': fputc('F', ptrfileout); break;
    case 'L': fputc('R', ptrfileout); break;
    case 'R': fputc('L', ptrfileout); break;
    case 'M': fputc('N', ptrfileout); break;
    case 'N': fputc('M', ptrfileout); break;
    case 'S': fputc('Z', ptrfileout); break;
    case 'Z': fputc('S', ptrfileout); break;
    default: fputc(car, ptrfileout); break;
    }
    car = fgetc(ptrfilein);
  }
  fclose(ptrfilein);
  fclose(ptrfileout);
}