Witam. Piszę fragment programu którego zadaniem jest pobranie treści zwracanych przez google (google jak to google, ma wyszukać strony pasujące do wpisanego hasła) w celu późniejszej obróbki (chcę uzyskać same linki do tych stron). W zasadzie cel osiągnąłem ale niestety nie do końca. Program faktycznie zwraca wyniki ale niestety raz na 3 uruchomienia, w większości przypadków okienko konsolowe porostu się wyłącza. Nie za bardzo wiem czym to jest spowodowane, a zależy mi na tym żeby zapętlić program, tak aby sprawdził min 10 podstron google.

Oto kod:

#include <string>  
#include <iostream>  
#include <curl/curl.h> 
#include <vector> 
using namespace std;  

string wynik;

static int geturl(char *data, size_t size, size_t nmemb, char *buffer){
  int result = 0;  
  wynik.append((const char*)data);
  result = size * nmemb;
  return result;  
}

string intToStr(int n){
string tmp, ret;
 if(n<0){
  ret="-";
  n=-n;
 }
 
do{
  tmp += n%10+48;
  n -= n%10;
}
while(n /= 10);

for(int i=tmp.size(); i>=0; i--) ret += tmp[i];
return ret;
}



size_t strpos(const string &haystack, const string &needle){
    
int sleng = haystack.length();
int nleng = needle.length();

if (sleng==0 || nleng==0) return string::npos;

    for(int i=0, j=0; i<sleng; j=0, i++ ){
        while (i+j<sleng && j<nleng && haystack[i+j]==needle[j]) j++;
        if (j==nleng) return i;
    }
    return string::npos;
}

//zaczynamy koniec z funkcjami :)
int main(){
int k,i,x,y;
string liczba,url,zmienna;
CURL *curl;

//for(k=0;k<=0;k=k+10){ 
k=80;
liczba=intToStr(k);
liczba.replace(0,1,"");
             
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
url="http://www.google.pl/search?hl=pl&source=hp&q=warszawa&lr=&btnG=Szukaj+w+Google&start="+liczba;
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, geturl); 
curl_easy_perform(curl);
curl_easy_cleanup(curl);


x=strpos(wynik, "<h3 class=r><a href=\"");
y=strpos(wynik, "<caption class=\"med nobr\" style");
wynik=wynik.substr(x,y-x);


for(i=0;i<=10;++i){
x=strpos(wynik, "<h3 class=r><a href=\"");
y=strpos(wynik, "\" class=l");
zmienna=wynik.substr(x+21, y-x-21);
wynik=wynik.replace(x,y-x+9,"");

zmienna=zmienna.replace(0,7,"");
y=strpos(zmienna, "/");
zmienna=zmienna.substr(0, y);
if(i!=10) cout<<zmienna<<endl;
zmienna="";
}

  
system("pause");
return 0;
} 

byłbym wdzięczny gdyby ktoś wytłumaczył mi gdzie tkwi błąd...</cpp>