Ciao a tutti
Stavo facendo un programma in C tale che, se io inserisco uno specifico carattere dalla tastiera, va ad incrementare il valore di una variabile, finché inserendo uno specifico carattere l'esecuzione si ferma e vengono mostrati i valori delle variabili incrementate. Tutto ciò va scritto in un file.
Il codice di seguito mi dà errore di segmentazione.
codice:
#include <stdio.h>#include <stdlib.h>
int main(){
int i = 0;
char c;
int counter[2];
FILE *m;
printf("\n *****CONTATORE*****\n");
printf("Premi invio per i CIAO, premi c per le COMBO,\n premi f per terminare l'esecuzione\n");
while(i == 0){
fopen("contatore.dat", "w");
if((c = getchar()) == '\n'){
counter[0]++;
printf("ciao\n");
fprintf(m,"ciao +1\n");
}else if((c = getchar()) == 'c'){
counter[1]++;
printf("combo!\n");
fprintf(m,"combo +1\n");
}else if((c = getchar()) == 'f'){
printf("Il numero di ciao totali è stato di: %d\n", counter[0]);
printf("Il numero di combo totali è stato di: %d\n", counter[1]);
printf("Per un totale di %d\n", counter[0] + counter[1]);
fprintf(m,"Il numero di ciao totali è stato di: %d\n", counter[0]);
fprintf(m,"Il numero di combo totali è stato di: %d\n", counter[1]);
fprintf(m,"Per un totale di %d\n", counter[0] + counter[1]);
fclose(m);
exit(0);
}
}
}
Se tolgo la scrittura su file il programma funziona solo se premo invio, mentre se premo gli altri due caratteri scelti (seguiti da invio) non succede niente.
Mi date una mano?