Ciao ragazzi, ho dei problemi a passare dei valori da riga di comando. Mi spiego, dovrei fare una sorta di calcolatrice su riga di comando, devo digitare 12 operatore 12 e deve tornarmi un risultato.
Il fatto è che non vuole fare quello che dico io.
ho usato degli if con delle condizioni del tipo if argv[2] (secondo parametro?) è uguale a '+' somma, se è uguale a meno...
dove sbaglio?
vi posto il codice, premetto che è il primo prog C che faccio
/*
*
* esercizio 1 - arith valore1 operatore valore2
*
*/
codice:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main (int argc, char **argv) {
int num1, num2, num3;
float ris;
char op;
if (argc = 3) {
num1 = atoi(argv[1]);
num2 = atoi(argv[3]);
num3 = atoi(argv[2]);
op = (char)num3;
printf("\n\n L'operazione che hai richiesto è %d %c %d \n\n\n", num1, argv[2], num2);
if (op=='+'){
ris = num1 + num2;
}
if (op=='-'){
ris = num1 - num2;
}
if (op=='*'){
ris = num1 * num2;
}
if (op=='/' && num2!=0){
ris = num1 / num2;
}
else{
printf("Non si può fare una divisione per 0!!!");
}
if (op=='&'){
ris = num1 % num2;
}
}
//if (argc = 2) {
//num2 = atoi(argv[2]);
//if (argv[2]=='sqr'){
//ris = num2 * num2;
//}
//if (argv[2]=='sqrt' && num2!=0){
//ris = sqrt(num2);
// }
//if (argc != 2 && argc != 3) {
//perror("Numero parametri errato");
//exit(0);
//}
//printf("Il risultato dell'operazione è %lf\n\n", ris);
//exit(0);
// }
}
ciao grazie