Strings verbinden



  • Hallo..
    Ich habe da ein kleines Problem für das ich keine Lösung finde..
    Ich möchte meinem Programm einen Parameter übergeben in Form eines Strings..
    Dieser String soll zuerst mit einem anderen String verkettet werden und anschliessend als Befehl in der Console ausgeführt werden:

    #include <iostream>
    #include <string>
    #include <cstring>
    #include <stdlib.h>
    using namespace std;
    
    int main (int argc, char *argv[]){
    	string path = "c:\\pfad\\";
    	string parameter = argv[1];
             // So klappt es leider nicht
             string befehl = path + parameter;
    	system(befehl);
    
     	return 0;
    }
    

    Nach diesem niederschmetterndem Misserfolg fand ich zumindest schonmal heraus, dass es scheinbar nicht ohne weiteres funktioniert dem system() einen String in Form einer Variable zu übergeben.

    Habe es dann so probiert:

    ...
    char path[100] = "c:\\pfad\\";
    ...
    system(pfad);
    

    Das hat geklappt..
    Allerdings fehlt da immernoch der Parameter den ich der Main Funktion übergebe und folgendes:

    ...
    char path[100] = "c:\\pfad\\" + argv[1];
    ...
    

    Wird mit der Fehlermeldung quittiert, dass 2 Zeiger nicht addiert werden können..

    Wäre wirklich Dankbar für einen kleine Hilfestellung..



  • Hi!

    Zu Möglichkeit Nr 1:

    system( befehl.c_str() );
    

    Zu Möglichkeit Nr 2:
    Mit strcat kannst du C-Strings verbinden, da du aber C++ verwendest solltest du die C Funktionen tunlichst vermeiden!

    grüße



  • system(befehl.c_str());



  • Wow, das ging ja fix..
    Vielen Dank!


Anmelden zum Antworten