diff --git a/main.cpp b/main.cpp index 524641d..f3d97a5 100644 --- a/main.cpp +++ b/main.cpp @@ -57,13 +57,15 @@ download(const string& address) { { CURLcode res; curl_easy_setopt(curl, CURLOPT_URL, address.c_str()); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer); + res = curl_easy_perform(curl); if (res != 0) { cout << curl_easy_strerror(res); exit(1); } - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &buffer); curl_easy_cleanup(curl); } @@ -73,13 +75,45 @@ download(const string& address) { int main(int argc, char* argv[]) { + + int ind; + const char* format; Input input; - if (argc > 1) { + if (argc > 1) + { + for (int i = 0; i < argc; i++) + { + if (strcmp(argv[i], static_cast("-format")) == 0) + { + ind = i; + } + } + + if ((ind+1) < argc) + { + format = argv[ind + 1]; + if (!(strcmp(format, static_cast("text")) == 0) && !(strcmp(format, static_cast("svg")) == 0)) + { + cout << "unknown format"; + return 0; + } + } + else + { + cout << "write program format"; + return 0; + } input = download(argv[1]); - } else { + } + else + { input = input_data(cin, true); } + const auto bins = make_histogram(input.numbers, input.bin_count); - show_histogram_svg(bins); - //show_histogram_text(bins, input.numbers, input.bin_count); + + if (strcmp(format, static_cast("text")) == 0) { + show_histogram_text(bins, input.numbers, input.bin_count); } + else if (strcmp(format, static_cast("svg")) == 0) { + show_histogram_svg(bins); } }