示例#1
0
int main(int argc, char **argv) { 
	struct soap soap;
    double response;	
    if (argc < 2) {
        fprintf(stderr, "Usage: ip:port\n");
        exit(0);
    }
    soap_init(&soap);

    int op1, op2;
    char op;
    printf("Entrez l'operande 1:\n");
    scanf("%d", &op1);
    fflush(stdin);
    printf("Entrez l'operande 2:\n");
    scanf("%d", &op2);
    fflush(stdin);
    printf("Entrez l'operateur:");
    scanf(" %c", &op);
    fflush(stdin);
    printf("%c", op);

    switch(op) {
        case '+':
            soap_call_ns__add(&soap, argv[1], "", op1, op2, &response);
            break;
        case '-':
            soap_call_ns__sub(&soap, argv[1], "", op1, op2, &response);
            break;
        case '*':
            soap_call_ns__mul(&soap, argv[1], "", op1, op2, &response);
            break;
        case '/':
            soap_call_ns__div(&soap, argv[1], "", op1, op2, &response);
            break;
        default:
            printf("invalid operator\n");
            break;
    }	

    if (soap.error){
        soap_print_fault(&soap, stderr);
        exit(1);
    } else {
        printf("resultat = %f\n", response);
    }
    soap_destroy(&soap);
    soap_end(&soap);
    soap_done(&soap);
    return 0;
}
示例#2
0
int main(int argc, char **argv)
{ struct soap soap;
  double a, b, result;
  if (argc < 4)
  { fprintf(stderr, "Usage: [add|sub|mul|div|pow] num num\n");
    exit(0);
  }
  soap_init1(&soap, SOAP_XML_INDENT);
  a = strtod(argv[2], NULL);
  b = strtod(argv[3], NULL);
  switch (*argv[1])
  { case 'a':
      soap_call_ns__add(&soap, server, "", a, b, &result);
      break;
    case 's':
      soap_call_ns__sub(&soap, server, "", a, b, &result);
      break;
    case 'm':
      soap_call_ns__mul(&soap, server, "", a, b, &result);
      break;
    case 'd':
      soap_call_ns__div(&soap, server, "", a, b, &result);
      break;
    case 'p':
      soap_call_ns__pow(&soap, server, "", a, b, &result);
      break;
    default:
      fprintf(stderr, "Unknown command\n");
      exit(0);
  }
  if (soap.error)
  { soap_print_fault(&soap, stderr);
    exit(1);
  }
  else
    printf("result = %g\n", result);
  soap_destroy(&soap);
  soap_end(&soap);
  soap_done(&soap);
  return 0;
}