I am trying to write a simple calculation program, that returns the mathmatical sequence entered written out with the total.
I realize there are one or two things i still need to touch up here, but my problem is how to add the numberical value in the string s to the string total. The line if (isdigit (*p)) strcat(total,p); is not working. I have tried variation on this, and tried to include it in the switch function, but to no avail. I would appreciate any suggestions on how to go about this.Code://still doesnt add the number to the string "total" as it goes through the string #include <math.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include <iostream.h> void test8(); void test8() {//Input of mathmatical sequence and output //of the eqn in text char s[256]; int i; int r=0; char *p=s; char c; char total[]={" "}; cout<<"Please enter the mathmatical statement"<<endl; cout<<"Include the = sign at the end of the statement"<<endl; //could use a search and strcopy fucn to add = sign if it wasnt entered cin>>s; while (isdigit(*p)) r=r*10+(*p++)-'0'; do { c=*p++; if (c =='=') strcat(total," equals "); if (c =='=') break; if (isdigit (*p)) strcat(total,p); i=0; while (isdigit(*p)) i=i*10+(*p++)-'0'; switch (c) { case '+': r += i;strcat(total," plus "); break; case '-': r -= i;strcat(total," minus "); break; case '*': r *= i;strcat(total," times "); break; case '/': r /= i;strcat(total," divided by "); break; default: cout<<"Bad input"<<endl; } //this does the computation in the order it was typed //no preference is given for * and / over + and - } while (true); cout <<total<<r<<endl; } int main() {test8(); return 0;}
Thanks



LinkBack URL
About LinkBacks


