From e43905e635750b4b959e920d89cef501ba0351ac Mon Sep 17 00:00:00 2001 From: ShestovDN Date: Wed, 7 Jun 2023 14:08:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=20=D0=B8=D0=BD=D0=B4=D0=B8=D0=B2?= =?UTF-8?q?=D0=B8=D0=B4=D1=83=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 62 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/main.cpp b/main.cpp index e634cf4..ead0804 100644 --- a/main.cpp +++ b/main.cpp @@ -20,7 +20,7 @@ size_t bin_count{}; }; Input -input_data(istream &tin, bool promt) +input_data(istream &sin, bool promt) { Input in; size_t number_count; @@ -29,54 +29,66 @@ if (promt) { cerr << "enter number count"; } -tin>> number_count; +sin>> number_count; in.numbers.resize(number_count); for (size_t i = 0; i < number_count; i++) { -in>> in.numbers[i]; +sin>> in.numbers[i]; } if (promt) { cerr<<"enter bin count:"; } -in >>in.bin_count; +sin >>in.bin_count; return in; } +size_t write_data(void* items, size_t item_size, size_t item_count, void* ctx) +{ + size_t data_size = item_size*item_count; + stringstream* buffer = reinterpret_cast(ctx); + buffer->write(reinterpret_cast(items), data_size); + return data_size; +} - -int main(int arg, char* argv[]) +Input +download(const string& adress) { - if (arg > 1) + stringstream buffer; + CURL* curl = curl_easy_init(); + if(curl) { - CURL* curl = curl_easy_init(); - if(curl) + CURLcode res; + curl_easy_setopt(curl, CORLOPT_URL, adress); + curl_easy_setopt(curl, CURLOPT_WRITEDATA,&buffer); + res=curl_easy_perform(curl); + curl_easy_cleanup(curl); + if(res!=CURLE_OK) { - CURLcode res; - curl_easy_setopt(curl,CURLOPT_URL,argv[1]); - res = curl_easy_perform(curl); - curl_easy_cleanup(curl); - if (res != CURE_OK) - { - cout<>arr[i]; -} + if (arg > 1) + { + input = download(argv[1]); + } + else + { + input=input_data(cin,true); + } auto bins = make_histogram(in.numbers, in.bin_count); show_histogram_svg(bins); return 0;