diff --git a/main.cpp b/main.cpp index 6c8ce75..a45e520 100644 --- a/main.cpp +++ b/main.cpp @@ -35,7 +35,7 @@ size_t write_data(void* items, size_t item_size, size_t item_count, void* ctx) { return data_size; } -void download(const string& address, Input& input) { +Input download(const string& address) { stringstream buffer; CURL* curl = curl_easy_init(); if (curl) { @@ -44,14 +44,12 @@ void download(const string& address, Input& input) { curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer); CURLcode res = curl_easy_perform(curl); if (res != CURLE_OK) { - cerr << "Error: " << curl_easy_strerror(res) << endl; + cerr << curl_easy_strerror(res); exit(1); } curl_easy_cleanup(curl); } - Input loaded = input_data(buffer, false); - input.numbers = loaded.numbers; - input.bin_count = loaded.bin_count; + return input_data(buffer, false); } void parse_args(int argc, char* argv[], Input& input, string& url) { @@ -81,7 +79,9 @@ int main(int argc, char* argv[]) { if (argc > 1) { parse_args(argc, argv, input, url); if (!url.empty()) { - download(url, input); + Input downloaded = download(url); + input.numbers = downloaded.numbers; + input.bin_count = downloaded.bin_count; } else { input = input_data(cin, true); }