Usando un file di appoggio:
codice:
using namespace std;
//Dice al linker di linkare con urlmon.lib (funziona solo con VC++, con altri compilatori aggiungi urlmon.lib ai file da linkare)
#pragma comment(lib,"urlmon.lib")
#include <iostream>
#include <urlmon.h>
#include <fstream>
#include <string>
#include <io.h>

int main()
{
	string indirizzo;
	char tempFileName[]="~downloadXXXX.tmp";
	char buffer[256];
	_mktemp(tempFileName);
	cout<<"Inserisci l'indirizzo della pagina: ";
	cin>>indirizzo;
	if(URLDownloadToFile(NULL,indirizzo.c_str(),tempFileName,0,NULL)!=S_OK)
	{
		cerr<<"Impossibile effettuare il download del file.";
	}
	else
	{
		ifstream is;
		is.open(tempFileName,ios::in | ios::binary);
		if(!is)
		{
			cerr<<"Impossibile leggere il file scaricato.";
		}
		else
		{
			while(is)
			{
				is.read(buffer,sizeof(buffer));
				cout.write(buffer,is.gcount());
			}
			is.close();
		}
		remove(tempFileName);
	}
	return 0;
}
Pre-emptive snarky comment di billiejoex: "In C++ ci vogliono 100 righe per fare qualunque cosa" - risposta: se noti il download del file occupa una sola riga.