/* File: conta01.c */
/* Time-stamp: "2002-05-23 20:06:03 calvanes" */
/* Scopo: uso di file */

/* Conta il numero di '0' e '1' in un file il cui nome viene letto da input. */


#include <stdio.h>

void conta01(char *nomefile, int *pconta0, int *pconta1)
  /* Conta il numero di '0' e '1' presenti nel file di nome nomefile e
     restituisce il risultato del conteggio in *pconta0 e *pconta1. */
{
  FILE *fp;
  char ch;

  if ((fp = fopen(nomefile, "r")) == NULL) {
    printf("Errore aprendo in lettura il file %s\n", nomefile);
    exit(1);
  }

  *pconta0 = 0;
  *pconta1 = 0;
  while ((ch = fgetc(fp)) != EOF) {
    switch (ch) {
    case '0': (*pconta0)++; break;
    case '1': (*pconta1)++; break;
    }
  }

  fclose(fp);
} /* conta01 */


int main(void)
{
  FILE *ptrFile;
  int conta0, conta1;
  char nomefile[257];

  printf("Introdurre il nome del file: ");
  scanf("%12s", nomefile);

  conta01(nomefile, &conta0, &conta1);

  printf("Il numero di 0 nel file e`: %d\n", conta0);
  printf("Il numero di 1 nel file e`: %d\n", conta1);

  return 0;
}