static void output_func_add_money(fsm_t* fsm){ nevera_fsm_t* nevera = (nevera_fsm_t*) fsm; display_add_money_menu(); add_saldo(nevera->user_selected,scan_float()); display_total_money(nevera->user_selected->saldo); scan_key(); nevera->option_selected = -1; }
void Parser::scan_value(void) { int c = read_byte(); switch (c) { case trace::TYPE_NULL: case trace::TYPE_FALSE: case trace::TYPE_TRUE: break; case trace::TYPE_SINT: scan_sint(); break; case trace::TYPE_UINT: scan_uint(); break; case trace::TYPE_FLOAT: scan_float(); break; case trace::TYPE_DOUBLE: scan_double(); break; case trace::TYPE_STRING: scan_string(); break; case trace::TYPE_ENUM: scan_enum(); break; case trace::TYPE_BITMASK: scan_bitmask(); break; case trace::TYPE_ARRAY: scan_array(); break; case trace::TYPE_STRUCT: scan_struct(); break; case trace::TYPE_BLOB: scan_blob(); break; case trace::TYPE_OPAQUE: scan_opaque(); break; case trace::TYPE_REPR: scan_repr(); break; case trace::TYPE_WSTRING: scan_wstring(); break; default: std::cerr << "error: unknown type " << c << "\n"; exit(1); case -1: break; } }
int main(void) { float fd; unsigned int ind; unsigned long len; for (ind = 0; ind < sizeof(tests) / sizeof(tests[0]); ++ind) { fd = 0; len = scan_float(tests[ind].str, &fd); if (!approx_equalf(fd, tests[ind].fd, MAX_ERROR)) { printf("fail: scan_float: [%u] %f != %f\n", ind, fd, tests[ind].fd); return 1; } if (len != str_len(tests[ind].str)) { printf("fail: scan_float: [%u] len %lu != %lu\n", ind, len, str_len(tests[ind].str)); return 1; } printf("[%u] %s %f\n", ind, tests[ind].str, tests[ind].fd); } return 0; }
entry scan_float_4() { new_env(0, 0); scan_float(); null(); ret(); }
int loadavg(void) { return (scan_float(LINEARG(1), &new_cc.loadaverage_thold)); }