স্ট্রাস্ট্রাপ সম্প্রতি সি ++ সম্পর্কে জনপ্রিয় মিথগুলি ছড়িয়ে দিয়ে বেশ কয়েকটি পোস্ট পোস্ট করেছে । পঞ্চম পৌরাণিক কাহিনীটি হ'ল: "সি ++ কেবলমাত্র বৃহত্তর, জটিল, শুধুমাত্র প্রোগ্রামগুলির জন্য"। এটি নিষ্ক্রিয় করতে, তিনি একটি সাধারণ সি ++ প্রোগ্রাম লিখেছিলেন যা একটি ওয়েব পৃষ্ঠা ডাউনলোড করে এবং এ থেকে লিঙ্কগুলি বের করে । এটা এখানে:
#include <string>
#include <set>
#include <iostream>
#include <sstream>
#include <regex>
#include <boost/asio.hpp>
using namespace std;
set<string> get_strings(istream& is, regex pat)
{
set<string> res;
smatch m;
for (string s; getline(is, s);) // read a line
if (regex_search(s, m, pat))
res.insert(m[0]); // save match in set
return res;
}
void connect_to_file(iostream& s, const string& server, const string& file)
// open a connection to server and open an attach file to s
// skip headers
{
if (!s)
throw runtime_error{ "can't connect\n" };
// Request to read the file from the server:
s << "GET " << "http://" + server + "/" + file << " HTTP/1.0\r\n";
s << "Host: " << server << "\r\n";
s << "Accept: */*\r\n";
s << "Connection: close\r\n\r\n";
// Check that the response is OK:
string http_version;
unsigned int status_code;
s >> http_version >> status_code;
string status_message;
getline(s, status_message);
if (!s || http_version.substr(0, 5) != "HTTP/")
throw runtime_error{ "Invalid response\n" };
if (status_code != 200)
throw runtime_error{ "Response returned with status code" };
// Discard the response headers, which are terminated by a blank line:
string header;
while (getline(s, header) && header != "\r")
;
}
int main()
{
try {
string server = "www.stroustrup.com";
boost::asio::ip::tcp::iostream s{ server, "http" }; // make a connection
connect_to_file(s, server, "C++.html"); // check and open file
regex pat{ R"((http://)?www([./#\+-]\w*)+)" }; // URL
for (auto x : get_strings(s, pat)) // look for URLs
cout << x << '\n';
}
catch (std::exception& e) {
std::cout << "Exception: " << e.what() << "\n";
return 1;
}
}
ছোট এবং পঠনযোগ্য প্রোগ্রামটি আসলে কী তা স্ট্রোস্ট্রপ দেখান ।
- ডাউনলোড
http://www.stroustrup.com/C++.html
সমস্ত লিঙ্ক তালিকা:
http://www-h.eng.cam.ac.uk/help/tpl/languages/C++.html http://www.accu.org http://www.artima.co/cppsource http://www.boost.org ...
আপনি যে কোনও ভাষা ব্যবহার করতে পারেন, তবে কোনও তৃতীয় পক্ষের লাইব্রেরি অনুমোদিত নয়।
বিজয়ী
সি ++ উত্তর ভোটে জিতেছে, তবে এটি অর্ধ-তৃতীয় পক্ষের লাইব্রেরিতে নির্ভর করে (যা নিয়ম দ্বারা অনুমোদিত নয়), এবং আরও একটি নিকট প্রতিদ্বন্দ্বী বাশের সাথে হ্যাক করা একসাথে এইচটিটিপি ক্লায়েন্টের উপর নির্ভর করে (এটি এইচটিটিপিএস দিয়ে কাজ করবে না, জিজিপ, পুনর্নির্দেশগুলি ইত্যাদি)। সুতরাং ওল্ফ্রাম একটি স্পষ্ট বিজয়ী। আকার এবং পঠনযোগ্যতার দিক থেকে আরও একটি সমাধান যা পাওয়ারশেল (মন্তব্যগুলির উন্নতির সাথে) কাছে আসে তবে এটি তেমন মনোযোগ পায়নি। মূলধারার ভাষা ( পাইথন , সি # ) খুব কাছে এসেছিল came
Content-Type: text/html; charset=UTF-8
করব ... আমি তাকে ইমেল করব।
boost/asio
সেখানে যা সম্পূর্ণভাবে ব্যবহার করা হবে হয় একটি তৃতীয় পক্ষের গ্রন্থাগার। আমি বলতে চাইছি যে ভাষাগুলিতে এর মানক লাইব্রেরির অংশ হিসাবে url / tcp আনার অন্তর্ভুক্ত নেই সেগুলি কীভাবে প্রতিযোগিতা করবে?