Salve scusatemi se uso questo topic ma visto che anche io ho un problema con un convertitore euro-lire ho pensato che era il posto giusto. Nel mio convertitore ho usato anche delle funzione e ho creato un menù. Come vedete nel codice sottostante se nel menù scelgo 3 mi stampa l'ultimo risultato su file. Il fatto è che dopo che premo 3 e invio mi compare il trattino lampeggiante e per continuare devo premere invio di nuovo ma io non l'ho scritto. Cioè vorrei che facesse tutto in automatico e riavviasse il programma. Come mai?
codice:
/*CONVERTITORE LIRE-EURO O EURO-LIRE*/
#include <stdio.h>
float euro_lire (float a); /*FUNZIONI PROTOTIPO*/
float lire_euro (float a);
int stampa_su_file (float a, float b);
int main()
{
float lire=0, euro=0;
char c;
int v;
do
{
printf("Inserire la scelta:\n\n\n");
printf("1-Converti Euro in Lire\n");
printf("2-Converti Lire in Euro\n");
printf("3-Stampa su file l'ultima conversione\n");
printf("0-ESCI\n\n");
c=getchar();
getchar();
switch (c)
{
case '1':
printf("\nInserire il valore in Euro:\n");
scanf("%f", &euro);
lire=euro_lire(euro);
printf("Valore in Lire: %.3f\n\n", lire);
break;
case '2':
printf("\nInserire il valore in Lire:\n");
scanf("%f", &lire);
euro=lire_euro(lire);
printf("Valore in Euro: %.3f\n\n", euro);
break;
case '3':
v=stampa_su_file(euro, lire);
if(v==1)
printf("\nEseguito!\n\n");
break;
case '0':
return 0;
}
while(!getchar()); /*SVUOTA IL BUFFER DI TASTIERA*/
}while(c);
}
float euro_lire (float a)
{
float b;
b= a*1936.27;
return(b);
}
float lire_euro (float a)
{
float b;
b= a/1936.27;
return(b);
}
int stampa_su_file (float a, float b)
{
FILE *pf = fopen("Convertitore.txt", "a+");
if (pf==NULL)
return 0;
fprintf(pf, "Euro %.3f ---- Lire %.3f\n\n", a, b);
fclose(pf);
return 1;
}