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.
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.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); } } }
Mi date una mano?![]()

Rispondi quotando