защита 10
Этот коммит содержится в:
@@ -13,7 +13,12 @@
|
||||
<Option compiler="gcc" />
|
||||
<Compiler>
|
||||
<Add option="-g" />
|
||||
<Add directory="C:/Users/koldinad/Desktop/lab34/curl1/include" />
|
||||
</Compiler>
|
||||
<Linker>
|
||||
<Add library="C:/Users/koldinad/Desktop/lab34/curl1/lib/libcurl.dll.a" />
|
||||
<Add directory="C:/Users/koldinad/Desktop/lab34/curl1/lib" />
|
||||
</Linker>
|
||||
</Target>
|
||||
<Target title="Release">
|
||||
<Option output="bin/Release/lab03" prefix_auto="1" extension_auto="1" />
|
||||
|
||||
43
main.cpp
43
main.cpp
@@ -39,15 +39,18 @@ size_t write_data(void* items, size_t item_size, size_t item_count, void* ctx) {
|
||||
return data_size;
|
||||
}
|
||||
|
||||
Input download(const string& address) {
|
||||
Input download(const string& address, bool verbose) { //äîáàâëåí ïàðàìåòð 'verbose'
|
||||
stringstream buffer;
|
||||
CURL* curl = curl_easy_init();
|
||||
if (curl) {
|
||||
curl_easy_setopt(curl, CURLOPT_URL, address.c_str());
|
||||
|
||||
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
|
||||
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
|
||||
|
||||
if (verbose){ //äîáàâëåíî âêëþ÷åíèå ïîäðîáíîãî âûâîäà, åñëè çàäàí ôëàã
|
||||
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
|
||||
}
|
||||
|
||||
CURLcode res = curl_easy_perform(curl);
|
||||
if (res != CURLE_OK) {
|
||||
cerr << "cURL error: " << curl_easy_strerror(res) << endl;
|
||||
@@ -65,10 +68,35 @@ Input download(const string& address) {
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
Input inn;
|
||||
if (argc > 1) {
|
||||
inn = download(argv[1]);
|
||||
//äîáàâëåíà ïåðåìåííàÿ-ôëàã è URL
|
||||
bool verbose = false;
|
||||
string url;
|
||||
|
||||
//äîáàâëåí ðàçáîð àðãóìåíòîâ
|
||||
for(int i=1; i<argc; ++i){
|
||||
string arg = argv[i];
|
||||
if (arg == "-verbose"){
|
||||
verbose =true;
|
||||
}
|
||||
else if (arg[0] == '-'){
|
||||
cerr << "Unknow option: " << arg << endl;
|
||||
cerr << "Usage: " << argv[0] << "[-verbose] <url>" << endl;
|
||||
return 1;
|
||||
}
|
||||
else{
|
||||
url = arg;
|
||||
}
|
||||
}
|
||||
|
||||
Input inn;
|
||||
// èçìåíåí âûçîâ íà verbose download
|
||||
//if (argc > 1) {
|
||||
// inn = download(argv[1]);
|
||||
//}
|
||||
if (!url.empty()){
|
||||
inn = download(url, verbose);
|
||||
}
|
||||
|
||||
else {
|
||||
inn = input_data(cin, true);
|
||||
}
|
||||
@@ -78,3 +106,8 @@ int main(int argc, char* argv[])
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Çàùèòà âàðèàíò 10
|
||||
// Äîáàâüòå ïðîãðàììå îïöèþ -verbose, ïðè óêàçàíèè êîòîðîé íóæíî âêëþ÷àòü îòëàäî÷íûé âûâîä
|
||||
// cURL ñ ïîìîùüþ CURLOPT_VERBOSE. Îïöèÿ ìîæåò ñòîÿòü äî èëè ïîñëå URL:
|
||||
// lab34.exe -verbose http://... èëè lab04.exe http://... -verbose
|
||||
|
||||
Ссылка в новой задаче
Block a user