int main() { char line[256]; while(fgets(line, sizeof(line) - 1, stdin)) { if(strcmp(line, "exit") == 0) { break; } if(is_valid_expression(line)) { print_result(get_expr_value()); } else { printf("Expression error\n"); } } return 0; }
int main(int argc, char *argv[]) { char *exp; int *result; ExpInfo *info; FILE *fp; #ifdef _WIN32 system("title 离散数学真值表"); #endif if (argc == 2) { fp = fopen(argv[1], "r"); if (fp == NULL) { printf("file read error!"); return 0; } while (!feof(fp)) { exp = fReadLine(fp); printf("%s\n", exp); if (!is_valid_expression(exp)) { free(exp); continue; } info = get_info(exp); result = print_table(exp, info, FALSE); print_result(result, info); free(exp); free(info); free(result); } fclose(fp); return 0; } while (1) { cls(); instruction(); exp = getstr(); if (strlen(exp) == 1 && exp[0] == 'q') { free(exp); break; } if (!is_valid_expression(exp)) { free(exp); printf("不合法的表达式!\n"); pause(); continue; } info = get_info(exp); /* printf("%s", infix_to_suffix(exp)); */ result = print_table(exp, info, TRUE); print_CNF(result, info); print_DNF(result, info); free(exp); free(info); free(result); pause(); } return 0; }