hjælp til lommeregner
jeg er ved at lave en lommeregner, og vil gerne have at man kan skrive en hel linje f.eks. 2+3*4/4093*sin(34)/ln(3)men hvordan får jeg den til at regne det ud?
jeg har indtil videre kun lavet en som der virker ved at man skriver hvad man vil gøre, en ting ad gangen:
#include <stdio.h>
main() {
char line[100];
int result;
char operat;
int value;
result = 0;
while (1) {
printf("result: %d\n", result);
printf("enter operator and number: ");
fgets(line, sizeof(line), stdin);
sscanf(line, "%c %d", &operat, &value);
if ((operat == 'q') || (operat == 'Q'))
break;
switch (operat) {
case '+':
result += value;
break;
case '-':
result -= value;
break;
case '*':
result *= value;
break;
case '/':
if (value == 0) {
printf("error: divide by zero\n");
printf(" operation ignored\n");
} else
result /= value;
break;
default:
printf("unknown operator %c\n", operat);
break;
}
}
return(0)
}
den er meget simpel lige nu men vil jo ikke begynde og lave videre på den når den skal laves helt om hvis den skal regne det hele ud på en linje