Fehler: cannot convert 'std::string' to 'char*' in der Initialisierung
habe ich python-Skript, das download der Wechselkurse von der web-Seite, und ich will machen c++ - Programm aus, hier ist, was ich habe, so weit:
include iostream
include time.h
include stdio.h
include curl/curl.h
include curl/easy.h
include string
define CURL_STATICLIB
using namespace std;
void dat(string &d){
time_t rawtime;
struct tm * timeinfo;
char datum[80];
time ( &rawtime );
timeinfo=localtime(&rawtime);
strftime(datum,80,"%d%m%y",timeinfo);
d=datum;
}
size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
size_t written;
written = fwrite(ptr, size, nmemb, stream);
return written;
}
int main()
{
string f;
dat(f);
string l1="http://www.hnb.hr/tecajn/f";
string l2=".dat";
string linkz=l1+f+l2;
cout << linkz;
CURL *curl;
FILE *fp;
CURLcode res;
char *url = linkz;
char outfilename[FILENAME_MAX] = "/home/tomi/data.txt";
curl = curl_easy_init();
if (curl) {
fp = fopen(outfilename,"wb");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
fclose(fp);
return 0;
}
es gibt mir diese Fehlermeldung, wenn ich versuche zu kompilieren, die ich gefunden habe verwendet, algorythm zum download txt, so hoffe ich, es ist richtig
- Hallo, @Tomislav. Herzlich willkommen auf Stack Overflow. Als Hilfestellung für die Menschen, deine Frage zu beantworten, bitte einfügen der exakt code, den Sie kompilieren (nicht erneut ein, sondern kopieren-einfügen). Auch fügen die genaue Fehlermeldung, die Sie sehen. Bei diesem Programm, es gibt viele Fehler-es ist sicherlich nicht genau das gleiche Programm, das Sie versuchen zu kompilieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hätte man darauf hingewiesen, die Linie, wo Sie die Fehlermeldung kam, würde ich nicht gehabt haben, um es aufzuspüren, zu:
Können Sie
c_str()
um einen Zeiger auf const-Zeichen in der Zeichenfolge. So wird dies tun:Könnten Sie haben, dass sehr gleichen Zeile in der
setopt
nennen, oder habenurl
einestd::string
als gut.char *url = linkz;
sollteconst char* url = linkz.c_str();
vorausgesetzt, Sie wirklich brauchen, ein C-style-string für API-Gründen.Das problem ist in dieser Zeile:
"links" ist ein std::string, aber die"url" ist ein char *. Versuchen Sie es mit der c_str Methode von string zu bekommen, was Sie brauchen, etwa so: