Сравнить коммиты

..

7 Коммитов

Автор SHA1 Сообщение Дата
BaranovEK 990a0e33f7 code: 3 var
11 месяцев назад
BaranovEK 612ef2cde1 code: errors of easy init
11 месяцев назад
BaranovEK 389a764382 code: easy init
11 месяцев назад
BaranovEK cad06fe58d code: main parametr
11 месяцев назад
BaranovEK 3710755ae3 code: add curl
11 месяцев назад
BaranovEK 8f5d8d90d6 code: input_data prompt parametr
11 месяцев назад
BaranovEK d25a052b48 code: stream
11 месяцев назад

1
.gitignore поставляемый

@ -1,4 +1,5 @@
/bin
/obj
/lab03.layout
/curl

@ -31,7 +31,12 @@
<Compiler>
<Add option="-Wall" />
<Add option="-fexceptions" />
<Add directory="curl/include" />
</Compiler>
<Linker>
<Add library="libcurl.dll.a" />
<Add directory="curl/lib" />
</Linker>
<Unit filename="histogram.cpp" />
<Unit filename="histogram.h" />
<Unit filename="histogram_internal.h" />

@ -7,9 +7,12 @@
1716797551 c:\users\lenov\desktop\lab03\histogram.h
<vector>
1717268069 source:c:\users\lenov\desktop\lab03\main.cpp
1717528384 source:c:\users\lenov\desktop\lab03\main.cpp
<iostream>
<vector>
<sstream>
<string>
<curl/curl.h>
"histogram.h"
"text.h"
"svg.h"
@ -22,12 +25,65 @@
"text.h"
<vector>
1716819918 c:\users\lenov\desktop\lab03\svg.h
1717516760 c:\users\lenov\desktop\lab03\svg.h
<vector>
1716819750 source:c:\users\lenov\desktop\lab03\svg.cpp
1717516760 source:c:\users\lenov\desktop\lab03\svg.cpp
<iostream>
<vector>
<string>
"svg.h"
1717401831 c:\users\lenov\desktop\lab03\curl\include\curl\curl.h
"curlver.h"
"system.h"
<stdio.h>
<limits.h>
<sys/param.h>
<sys/types.h>
<time.h>
<winsock2.h>
<ws2tcpip.h>
<sys/select.h>
<sys/socket.h>
<sys/time.h>
"easy.h"
"multi.h"
"urlapi.h"
"options.h"
"header.h"
"websockets.h"
"mprintf.h"
"typecheck-gcc.h"
1717401831 c:\users\lenov\desktop\lab03\curl\include\curl\curlver.h
1717401834 c:\users\lenov\desktop\lab03\curl\include\curl\system.h
<ConditionalMacros.h>
<inttypes.h>
<inttypes.h>
<sys/types.h>
<sys/socket.h>
<sys/poll.h>
1717401832 c:\users\lenov\desktop\lab03\curl\include\curl\easy.h
1717401833 c:\users\lenov\desktop\lab03\curl\include\curl\multi.h
"curl.h"
1717401834 c:\users\lenov\desktop\lab03\curl\include\curl\urlapi.h
"curl.h"
1717401833 c:\users\lenov\desktop\lab03\curl\include\curl\options.h
1717401832 c:\users\lenov\desktop\lab03\curl\include\curl\header.h
1717401835 c:\users\lenov\desktop\lab03\curl\include\curl\websockets.h
1717401832 c:\users\lenov\desktop\lab03\curl\include\curl\mprintf.h
<stdarg.h>
<stdio.h>
"curl.h"
1717401834 c:\users\lenov\desktop\lab03\curl\include\curl\typecheck-gcc.h

@ -1,38 +1,84 @@
#include <iostream>
#include <vector>
#include <sstream>
#include <string>
#include <curl/curl.h>
#include "histogram.h"
#include "text.h"
#include "svg.h"
using namespace std;
struct Input {
struct Input
{
vector<double> numbers;
size_t bin_count{};
};
Input
input_data() {
size_t number_count;
Input input_data(istream& stream, bool prompt) {
Input in;
size_t number_count;
if (prompt) {
cerr << "Enter number count: ";
cin >> number_count;
Input in;
in.numbers.resize(number_count);
cerr << "Enter numbers: ";
for (size_t i = 0; i < number_count; i++) {
cin >> in.numbers[i];
}
stream >> number_count;
in.numbers.resize(number_count);
for (size_t i = 0; i < number_count; i++) {
if (prompt) {
cerr << "Enter number " << i+1 << ": ";
}
stream >> in.numbers[i];
}
if (prompt) {
cerr << "Enter bin count: ";
cin>> in.bin_count;
}
stream >> in.bin_count;
return in;
}
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<stringstream*>(ctx);
(*buffer).write(reinterpret_cast<const char*>(items), data_size);
return data_size;
}
int
main() {
auto in = input_data();
auto bins = make_histogram(in.numbers, in.bin_count);
show_histogram_svg(bins);
Input
download(const string& address) {
stringstream buffer;
CURL *curl = curl_easy_init();
if(curl) {
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);
int speed;
curl_easy_getinfo(curl,CURLINFO_SPEED_DOWNLOAD_T, & speed);
cerr << "The average download speed: " << speed << " bytes/second" << endl ;
return 0;
if (res!=CURLE_OK){
cerr << curl_easy_strerror(res);
exit(1);
}
curl_easy_cleanup(curl);
}
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);
}
const auto bins = make_histogram(input.numbers, input.bin_count);
show_histogram_svg(bins);
return 0;
}

Загрузка…
Отмена
Сохранить