FILE in C

di il
1 risposte

FILE in C

Salve a tutti ho un dubbio. Non riesco a capire perché non riesco a leggere da file il segno meno (-). Ho un costrutto switch, ma ho notato che il viene completamente ignorato il case '-'. Se riuscite a darmi una mano ve ne sarei grato. Grazie in anticipo.
Vi inolto inoltre il codice

int main() {

//Leggo il file

char segno;
float op1, op2, risultato;

FILE *fin;
fin = fopen("..\\Operations.txt", "r");

if(fin) {
fscanf(fin, "%c %f%f", &segno, &op1, &op2);

while (!feof(fin)) {

switch (segno) {
case '+':
risultato = op1+op2;
printf("%c %.2f\n", segno, risultato);
break;
case '-':
risultato = op1-op2;
printf("%c %.2f\n", segno, risultato);
break;
case '*':
risultato = op1*op2;
printf("%c %.2f\n", segno, risultato);
break;
case '/':
if (op2 !=0) {
risultato = op1 / op2;
printf("%c %.2f\n", segno, risultato);
break;

} else
printf("Errore! Impossibile eseguire una divisione per zero!");


}


fscanf(fin, "%c %f%f", &segno, &op1, &op2);
}




} else{
printf("Error!");
}
fclose(fin);

return 0;
}

1 Risposte

  • Re: FILE in C

    Se stai facendo un parser, prenditi tutta la riga, mettila in un buffer (ad esempio con la getline()) e lavora direttamente sull'array.
    Non andare a cercarti rogne con fscanf, che già devi fare una cosa difficile...
Devi accedere o registrarti per scrivere nel forum
1 risposte