From 8ae80f4cf19248d97d028aaf379293a591596766 Mon Sep 17 00:00:00 2001
From: "Dima (AntonovDA)" <AntonovDAn@mpei.ru>
Date: Sat, 18 May 2024 12:13:54 +0300
Subject: [PATCH] code: add checker of mistakes

---
 l03.cpp | 73 ++++++++++++++++++++++++---------------------------------
 1 file changed, 31 insertions(+), 42 deletions(-)

diff --git a/l03.cpp b/l03.cpp
index 594bfe6..3a857bf 100644
--- a/l03.cpp
+++ b/l03.cpp
@@ -4,17 +4,15 @@
 #include "svg.h"
 #include "text.h"
 #include <curl/curl.h>
+#include <sstream>
+#include <string>
 
 using namespace std;
 
-// const size_t SCREEN_WIDTH = 80;
-// const size_t MAX_ASTERISK = SCREEN_WIDTH - 3 - 1;
-
 struct Input
 {
     vector<double> numbers;
     size_t bin_count{};
-    // size_t IMAGE_WIDTH{};
 };
 
 Input input_data(istream &in, bool promt)
@@ -28,21 +26,9 @@ Input input_data(istream &in, bool promt)
 
     Input input;
 
-    // if (promt) cerr << " Input width of image, > 70 but not >800 : ";
-    // in >> input.IMAGE_WIDTH;
-    // if(input.IMAGE_WIDTH < 70 || input.IMAGE_WIDTH > 800 ) {
-    // while(input.IMAGE_WIDTH < 70 || input.IMAGE_WIDTH > 800) {
-    // if (promt) cerr << " Input width of image, >70 but not >800 : ";
-    // in >> input.IMAGE_WIDTH;
-    //}
-    //}
-
-    // size_t number_count = in.number_counts;
-
     input.numbers.resize(number_count);
     if (promt)
         cerr << "Enter numbers: ";
-    // vector<double> numbers(number_count);
 
     for (size_t i = 0; i < number_count; i++)
     {
@@ -56,45 +42,48 @@ Input input_data(istream &in, bool promt)
     return input;
 }
 
-int main(int argc, char *argv[])
+Input download(const string &address)
 {
+    stringstream buffer;
+
+    //address.c_str();
 
-    if (argc > 1)
+    curl_global_init(CURL_GLOBAL_ALL);
     {
-        curl_global_init(CURL_GLOBAL_ALL);
+        CURL *curl = curl_easy_init();
+        if (curl)
         {
+            CURLcode res;
+            curl_easy_setopt(curl, CURLOPT_URL, address.c_str());
+            res = curl_easy_perform(curl);
             CURL *curl = curl_easy_init();
             if (curl)
             {
                 CURLcode res;
-                curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
+                /* set options */
+                /* Perform the entire transfer */
                 res = curl_easy_perform(curl);
-                CURL *curl = curl_easy_init();
-                if (curl)
-                {
-                    CURLcode res;
-                    /* set options */
-                    /* Perform the entire transfer */
-                    res = curl_easy_perform(curl);
-                    /* Check for errors */
-                    if (res != CURLE_OK)
-                        fprintf(stderr, "curl_easy_perform() failed: %s\n",
-                                curl_easy_strerror(res));
-                    exit(1);
-                }
-                curl_easy_cleanup(curl);
+                /* Check for errors */
+                if (res != CURLE_OK)
+                    fprintf(stderr, "curl_easy_perform() failed: %s\n",
+                            curl_easy_strerror(res));
+                exit(1);
             }
+            curl_easy_cleanup(curl);
         }
+    }
 
-        return 0;
+    return input_data(buffer, false);
+}
+int
+main(int argc, char* argv[]) {
+    Input input;
+    if (argc > 1) {
+        input = download(argv[1]);
+    } else {
+        input = input_data(cin, true);
     }
 
-    auto input = input_data(cin, true);
-    auto bins = make_histogram(input.numbers, input.bin_count);
-    // int chek_block_width(in.IMAGE_WIDTH);
-    // chek_block_width(in.IMAGE_WIDTH, in.number_count);
-    // if (chek_block_width==1)
+    const auto bins = make_histogram(input.numbers, input.bin_count);
     show_histogram_svg(bins);
-    // if(chek_block_width==0) return 0;
-    // show_histogram_svg(bins);
 }
\ No newline at end of file