/* Calcolatrice a riga di comando (quattro operazioni + potenze) Nota: per la moltiplicazione sono dati due simboli, x e *, ma se si usa * nella riga di comando va 'escaped', o mettendolo fra apicetti singoli, oppure scrivedo \* Per il numero di cifre del printf regolarsi come si crede opportuno (anche in base ai numeri che si vogliono utilizzare - per sicurezza il risultato รจ dato anche in notazione esponenziale) */ #include #include // per atoi() int main(int argc, char *argv[]) { float a, b, ris; char op, *p; if (argc < 4) { printf("Immettere l'operazione nel formato, ad es., \"3 + 4\"\n"); return 0; } printf("Operazione da effettuare: %s %s %s\n", argv[1], argv[2], argv[3]); a = atof(argv[1]); b = atof(argv[3]); p = argv[2]; // si noti l'uso del puntatore op = *p; // -> per prendere il primo carattere della string printf(" ovvero: %f %c %f\n", a, op, b); switch(op) { case '+': ris = a + b; break; case '-': ris = a - b; break; case 'x': case '*': ris = a * b; break; case '/': ris = a / b; break; default: printf("operatore %c non riconosciuto\n", op); return 0; } printf("Risultato: %f %c %f = %f [%.2e]\n", a, op, b, ris, ris); return 0; }