diff --git a/.gitignore b/.gitignore index 925f687..25214d7 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /main.exe /unittest.layout /curl +libcurl-x64.dll diff --git a/main.cpp b/main.cpp index fe31698..e655daa 100644 --- a/main.cpp +++ b/main.cpp @@ -4,28 +4,52 @@ #include "text.h" #include "svg.h" - struct Input { vector vec; size_t korz{}; }; -Input input_data(istream& in, bool promt = false) { + +Input input_data(istream& in, bool prompt = false) { Input lin; size_t n, korz; - if(promt) - cerr << "Number of elem "; + if(prompt) + cerr << "Number of elements: "; in >> n; lin.vec.resize(n); for (size_t i = 0; i < n; i++) in >> lin.vec[i]; - if(promt) + if(prompt) cerr << "Enter bin count: "; in >> lin.korz; return lin; } -int main() { - curl_global_init(CURL_GLOBAL_ALL); + +size_t write_data(void* ptr, size_t size, size_t nmemb, void* stream) { + size_t written = fwrite(ptr, size, nmemb, stdout); + return written; +} + +int main(int argc, char* argv[]) { + if (argc > 1) { + CURL* curl = curl_easy_init(); + if (curl) { + curl_easy_setopt(curl, CURLOPT_URL, argv[1]); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); + + CURLcode res = curl_easy_perform(curl); + if (res != CURLE_OK) { + cerr << "cURL error: " << curl_easy_strerror(res) << endl; + } + + curl_easy_cleanup(curl); + } else { + cerr << "curl_easy_init() failed" << endl; + } + return 0; + } + auto in = input_data(cin); auto bins = make_histogram(in.korz, in.vec); show_histogram_svg(bins); + return 0; }