#include void flushstdin(); /* borra el buffer stdin */ int main(int argc, char * argv[]) { double v, sum; char buff[100]; sum = 0.0; v = 0.0; char op = '\0'; int salir2; while( op != 'q' ) { fgets(buff, sizeof(buff), stdin); salir2 = sscanf(buff,"%lf",&v); if( !salir2 ) { op = buff[0]; printf("op %c\n",op); continue; } switch(op) { case '+': fprintf(stdout,"v: %f \t%.2f\n",v,sum += v); break; case '-': printf("v: %f \t%.2f\n",v,sum -= v); break; case '*': printf("v: %f \t%.2f\n",v,sum *= v); break; case '/': printf("v: %f \t%.2f\n",v,sum /= v); break; case 'q': break; default: /* opcion no valida */ printf(" Operador no valido \n"); } } fprintf(stdout,"salimos\n"); fprintf(stderr,"salio todo bien\n"); return 0; } void flushstdin() { int c; while ((c = getchar()) != '\n' && c != EOF); }