[c++] variable URL einfügen

NoName86

Grünschnabel
Hallo, Ich habe folgendes vor mit dem Programm, es soll eine Internet Seite aufrufen. Soweit habe ich das auch hinbekommen, der Internet Explorer öffnet sich auch mit der entsprechenden URL. Jetzt will ich aber ein Wort in die Konsole eingeben, das der URL hinzugefügt wird.

Code:
#include <windows.h>
#include <shellapi.h>
#include <stdio.h>
#include <conio.h>

char ft[31];

int main()
{
    printf("xxxxx:\n");
    scanf("\%s",ft);
 ShellExecute(NULL, "open", "Pfad zur IExplorer.exe", z.B. "www.google.de" und dahinter soll dann ein wort gefügt werden, NULL, SW_SHOW); 
    
getch();
return 0;
}

Falls mir dabei Jemand helfen könnte wäre das nett. Ich benutze den Dev-C++ 4.9.9.2 von bloodshed. Habe da noch nen anderes Problem, kann Strings nur als Char-Array erstellen, auch wenn ich #include<string> eingefügt habe erscheint immer die Fehlermeldung "string does not name a type". Gibt es da noch eine andere Möglichkeit?

Danke ---NoName86---
 
moin


Code:
#include <windows.h>
#include <shellapi.h>
#include <stdio.h>
#include <conio.h>

int main()
{
    char adresse[50];
    char ft[31];

    printf("xxxxx:\n");
    scanf("\%s",ft);

    strcpy(adresse, "www.google.de");
    strcat(adresse, ft);

    ShellExecute(NULL, "open", "Pfad zur IExplorer.exe", , NULL, SW_SHOW); 
    
    getch();
    return 0;
}


mfg
umbrasaxum
 
NoName86 hat gesagt.:
Habe da noch nen anderes Problem, kann Strings nur als Char-Array erstellen, auch wenn ich #include<string> eingefügt habe erscheint immer die Fehlermeldung "string does not name a type". Gibt es da noch eine andere Möglichkeit?
Alle Klassen der Standard-Bibliothek sind im Namensraum "std" deklariert.

Das heißt um die "string"-Klasse benutzen zu können, muß man entweder

a) den Namensraum explizit jedesmal angegeben:
Code:
#include <string>
std::string mein_string = "hallo.";

b) den kompletten Namensraum "std" in den globalen Namensraum einfügen (dies sollte man grundsätzlich nur in C++ Quelldateien tun - nicht in einer Header-Datei!):
Code:
#include <string>
using namespace std;
string mein_string = "xyz";

oder c) explizit angeben welche Klasse/Funktion aus dem Namensraum "std" man verwenden möchte:
Code:
#include <string>
using std::string;
string mein_string = "xzibby";
 
Danke an euch beide, hab eben nen kleines Programm geschrieben und das mit den Strings ausprobiert, funktioniert jetzt.
Bei meinem eigentlichen Programm habe ich die Änderungen eingetragen (hatte sowas ähnliches im Inet schonmal nachgelesen). Da ich vorher nur Pascal programmiert hatte kenn ich mich mit den C++ Befehlen noch nicht so aus. So weis ich immer noch nicht was ich jetzt an diese Stelle schreiben muss.
Code:
ShellExecute(NULL, "open", "Pfad", _____, NULL, SW_SHOW);
Kommt da jetzt "strcat" rein oder was muss ich machen?

Nochmals Danke falls Jemand einem lernbereiten Anfänger helfen kann ;)

---NoName86---
 
Hi.

Also wenn du es gerne in C++ machen möchtest, dann geht das so:
Code:
#include <string>
#include <cstdio> // für scanf

using std::string;
string adresse = "www.google.de/search?q=";

char extra[50];
if (scanf ("\\%49s", extra) == 1) {
  adresse += extra;
}
ShellExecute(NULL, "open", "Pfad", adresse, NULL, SW_SHOW);
 
Bekomme mit den Änderungen vier Fehlermeldungen.

Code:
(8) if (scanf ("\\%49s", extra) == 1) {

expected unqualified-id before "if" und expected `,' or `;' before "if"

Code:
(11) ShellExecute(NULL, "open", "C:\\Programme\\Internet Explorer\\iexplore.exe", adresse, NULL, SW_SHOW);

expected constructor, destructor, or type conversion before '(' token und expected `,' or `;' before '(' token

Das ganze in die int main() oder einfach nur so wie du es hingeschrieben hast?

Thx ---NoName86---
 
Zuletzt bearbeitet:
Ups. Sorry. Hab vergessen das ShellExecute ja einen C-String als Parameter bekommen muß.
Code:
ShellExecute(NULL, "open", "C:\\Programme\\Internet Explorer\\iexplore.exe", adresse.c_str(), NULL, SW_SHOW);

Vor "if" hast du wahrscheinlich ein Semikolon vergessen. Was steht denn vor Zeile 8?
 
Nummern hab ich natürlich davor geschrieben um das Problem besser zu zeigen...
Hm, habe alles so geändert wie vorgeschlagen aber das funktioniert nicht, auch vor Zeile (8) steht ein ; (semikolon), also daran liegts auch nicht. Ich poste nochmal den ganzen Code rein, bestimmt habe ich was anderes falsch gemacht, immer noch Zeile (8) und (11) sind nicht korrekt.

Code:
#include <string>
#include <cstdio>

using std::string;
string adresse = "www.google.de/search?q=";

char extra[50];
if (scanf ("\\%49s", extra) == 1) {
  adresse += extra;
}
ShellExecute(NULL, "open", "C:\\Programme\\Internet Explorer\\iexplore.exe", adresse.c_str(), NULL, SW_SHOW);

Bei den roten Zeilen mäckert der Debugger immer noch herum mit den gleichen Fehlermeldungen wie im Post zuvor geschrieben von mir.

Zeile 8expected unqualified-id before "if" und expected `,' or `;' before "if"
Zeile 11expected constructor, destructor, or type conversion before '(' token und expected `,' or `;' before '(' token
 
Zurück