From b21cb476c60953a8a361ca74659d6f4d35d112bb Mon Sep 17 00:00:00 2001 From: jstmax! <87650746+MaxWasTakenYT@users.noreply.github.com> Date: Thu, 17 Oct 2024 18:40:07 +0000 Subject: Update and rename xsc_debug.cpp to xsc.cpp --- xsc.cpp | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 xsc.cpp (limited to 'xsc.cpp') diff --git a/xsc.cpp b/xsc.cpp new file mode 100644 index 0000000..63004b0 --- /dev/null +++ b/xsc.cpp @@ -0,0 +1,76 @@ +#include +#include +#include +using namespace std; + +void usage() { + // Prints usage message (help) + system("figlet XSC | lolcat"); + cout << "\neXtremelySimpleCalculator usage:\n" + << "`xsc --help | -h` for help\n" + << "`xsc <(+|-|*|/|%|^)> ` for mathematical operation\n" + << "`xsc -sqrt | -r ` for square root operation\n" + << "\n[n!] `xsc` doesn't support mathematical expressions (to-do)\n"; +} + +int main(int argc, char* argv[]) { + // AAAAAAAAAA (a.k.a. argument validation and execution) + for (int i = 1; i < argc; ++i) { + string arg = argv[i]; + + if (arg == "--sqrt" || arg == "-r") { + } + else if (arg == "--help" || arg == "-h") { + usage(); + return 0; + } + else if (i + 2 < argc) { + string op = argv[i + 1]; + double num1 = stod(argv[i]); + double num2 = stod(argv[i + 2]); + double result; + + if (op == "+") { + result = num1 + num2; + } + else if (op == "-") { + result = num1 - num2; + } + else if (op == "*") { + result = num1 * num2; + } + else if (op == "/") { + if (num2 != 0) { + result = num1 / num2; + } + else { + cout << "[math_e!] division by zero!\n"; + usage(); + return 1; + } + } + else if (op == "%") { + result = fmod(num1, num2); + } + else if (op == "^") { + result = pow(num1, num2); + } + else { + cout << "[e!] invalid operator!\n"; + usage(); + return 1; + } + // show result :) + cout << result << "\n"; + return 0; + } + else { + cout << "[e!] invalid input!\n"; + usage(); + return 1; + } + + } + + return 0; +} -- cgit v1.3.1