system() + string möglich ?


  • Administrator

    kantaki schrieb:

    wenn ich eine batch datei aufrufen will, habe ich da bessere alternativen als system() ?

    Ja, verwende Plattform spezifischen Code. Für welches OS entwickelst du denn?

    Grüssli



  • ich selber nutze windows 7 aber ich möchte eigentlich das es auch auf xp vista funktioniert.


  • Administrator

    kantaki schrieb:

    ich selber nutze windows 7 aber ich möchte eigentlich das is auch auf xp vista funktioniert.

    Das ist eigentlich kein Problem, solange es nicht noch Mac und Linux sein soll 😉
    In der WinAPI Abteilung kann man dir da besser helfen, aber grundsätzlich solltest du mit ShellExecute oder CreateProcess bedient sein.

    Grüssli



  • okay leute eine frage hab ich noch. ich schwöre das ist die letzte für heute ^^

    #include<fstream>
    #include<iostream>
    #include<cstdlib>
    #include<fstream>
    #include<string>
    #include<cstring>
    #include<vector>
    using namespace std;
    void multistarter( string exename, string site )
    {
        char * cstr;
        string localsystem = "\"start " + exename+" "+ site "\"" ;
        cstr = new char [localsystem.size()+1];
        strcpy (cstr, localsystem.c_str());
        system(cstr);
        delete[] cstr;
    
    }
    
    int main()
    {
    
        ifstream source;
        vector<string> svec;
        string lines;
        string dataname ="test.txt";
        source.open(dataname.c_str());
        if (!source)
        {
            cerr << dataname
                 << " not found\n";
            return-1;
        }
    
        while (getline(source,lines))
        {
    
            svec.push_back(lines);
    
        }
        for (vector<string>::size_type index = 0; index!=svec.size(); ++index)
        {
    
            multistarter(svec[index]);
    
        }
    
    }
    

    in der test datei steht immoment

    firefox.exe, wwww.cplusplus.de
    

    leider bekomme ich schon einen compiler fehler =>too few arguments

    aber ich habe doch 2 strings in der function ?



  • Hm.. wie viele Parameter bekommt "multistarter" und wie viele hast du übergeben?



  • cooky451 schrieb:

    Hm.. wie viele Parameter bekommt "multistarter" und wie viele hast du übergeben?

    void multistarter( string exename, string site ) // 2 string arguments
    

    und gelesen wird firefox.exe, wwww.cplusplus.de

    aber irgentwie übersehe ich irgentwas. aber ich finde es nicht. vielleicht sollte ich heute einfach mal pause machen und mir das programm morgen nochmal anschauen T_T.



  • kantaki schrieb:

    cooky451 schrieb:

    Hm.. wie viele Parameter bekommt "multistarter" und wie viele hast du übergeben?

    void multistarter( string exename, string site ) // 2 string arguments
    

    und gelesen wird firefox.exe, wwww.cplusplus.de

    aber irgentwie übersehe ich irgentwas. aber ich finde es nicht. vielleicht sollte ich heute einfach mal pause machen und mir das programm morgen nochmal anschauen T_T.

    Guck dir doch mal Zeile 47 an? 😮
    Du solltest einfach die Grundlagen lernen.



  • cooky451 schrieb:

    Guck dir doch mal Zeile 47 an? 😮
    Du solltest einfach die Grundlagen lernen.

    hmm?

    multistarter(svec[index]); gibt doch eine zeile von meiner textdatei aus. also in diesem fall firefox.exe, wwww.cplusplus.de.

    überseh ich etwas ?


  • Mod

    kantaki schrieb:

    multistarter(svec[index]); gibt doch eine zeile von meiner textdatei aus. also in diesem fall firefox.exe, wwww.cplusplus.de.

    überseh ich etwas ?

    cooky451 schrieb:

    Hm.. wie viele Parameter bekommt "multistarter" und wie viele hast du übergeben?

    Alles dreht sich irgendwie im Kreis.

    P.S.: C++ ist übrigens keine Skriptsprache. Falls du glaubst dies hier ginge, dann irrst du dich gewaltig:

    void foo(int, int);
    
    int main()
    {
     int a, b;
     string argument = "a, b";
     foo(argument);
    }
    


  • hm okay dh ich muss jedes wort trennen und einer variable zuweisen. müsste doch machbar sein. naja jedenfalls danke schonmal. ich setzte mich morgen nochmal dran.


Anmelden zum Antworten