/* **主函数 */ int main (void) { int choice; struct student * head, * phead; struct student * p1; printf("\033[36;m"); menu(); scanf ("%d",&choice); while (choice != 0) { switch (choice ) { case 1: head = creat_list (); printf("录入完毕,任意键返回\n"); clear_s(); break; case 2: print_list (head); printf ("输出完毕,任意键返回\n"); clear_s(); break; case 3: delete_list(head); if (head == NULL) { printf ("删除不成功,请选择:\n"); scanf ("%d",&choice); break; } printf ("删除完毕,任意键返回\n"); clear_s(); break; case 4: p1 = find_stu(head); print_find(p1); printf ("查找完毕,任意键返回\n"); clear_s(); break; case 5: phead = ave_list (head); print_list(phead); printf ("排序完毕,任意键返回\n"); clear_s(); break; case 6: head = insert (head); print_list(head); printf ("插入完毕,任意键返回\n"); clear_s(); break; case 0: exit (0); break; } scanf ("%d",&choice); } }
int main(int argc, char **argv) { if (pif_error(argc < 2, "No command specified")) return usage(-1); if (pif_error(argc < 3, "No DB path specified")) return usage(-1); char *cmd = argv[1]; char *keyData[JFT_KEY_LIMIT]; JFDB *db; JFT_Stem prefix = (JFT_Stem) {.data = (uint8_t *)keyData}; JFT_Symbol *stop = NULL; JFT_Offset offset; switch (cmd[0]) { case 'm': case 'n': case 'k': case 'f': case 'l': db = JFDB_open(argv[2], 0); if (JFDB_pif_error(db, "Failed to open")) return -1; switch (cmd[0]) { case 'm': print_meta(db); break; case 'n': offset = argc > 3 ? atoi(argv[3]) : db->tip.cp.offset; offset = MAX(offset, sizeof(JFDB_Header)); print_info(db, &prefix, db->kmap.map + offset, &null); break; case 'k': if (!prefix_opts(&prefix, &stop, argc - 2, argv + 2)) print_keys(db, &prefix, stop); break; case 'f': if (!prefix_opts(&prefix, &stop, argc - 2, argv + 2)) print_find(db, &prefix, stop); break; case 'l': load_input(db, stdin); break; } if (JFDB_close(db)) return -1; break; case 'w': if (pif_error(JFDB_wipe(argv[2]), "Failed to wipe")) return -1; break; default: usage(1); break; } return 0; }