An net user einen string übergeben



  • funktioniert mit ner char
    den string hallo verwendest du nicht nicht
    wenn du hallo nicht initialisierst wirst du zum selben
    ergebnis kommen

    char cmd[]="net user hallo";
           system(cmd);
    

    für einen dynamischen benutzer ist dies einfacher

    string cmd="net user";
           string user="hallo";
           cmd = cmd+" "+user;     
    system(cmd.c_str());
    


  • Dieses Programm soll das Passwort eines users ändern, das ist vielleicht gut zu wissen. vielleicht funktioniert es aber ich bin zur zeit an einem schüler pc...



  • Ich habe folgendes eingegeben:

    #include <iostream>
    #include <string>
    using namespace std;

    int main() {
    string cmd="net user";
    string user="Schueler";
    cmd = cmd+" "+user;
    system(cmd.c_str());
    system("pause");
    }

    Es kommt jedoch nur die Meldung , dass der Benutzername nich gefunden werden konnte.

    Die Idee dieses Programmes ist , dass man den benutzername eingibt, und das Passwort dann geändert werden soll.



  • das der benutzer nicht gefunden wird
    liegt wohl daran dass du keinen benutzer
    namens schueler hast

    zwei stunden in ein anfänger buch und
    du schaffst den rest alleine
    außer ein und ausgabe hast du alles um
    es dir selber zu schreiben 😉

    ps als schüler wirst du adminrechte brauchen....



    Ich habe als schueler Adminrechte (siehe control userpasswords2)

    Ich verstehe das prinzip , funktioniert bloß noch net ganz , muss wohl
    tüfteln

    Ich habe als anfänger bücher :Spielend c++ lernen und
    Einstieg in C++(Arnold Willemer)

    Aber Danke für eure hilfe, jetzt kenne ich zumindest das prinzip.



  • Anscheinend reicht es dann doch nicht zu wissen wie es teoretisch funktioniert, denn der Compiler gibt mir immer noch einen fehler aus...

    #include <cstdlib>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    
        string Befehl,User,Word;
        Befehl="net user";
        cin>>User;
        Word="Hallo";
    
        Befehl=Befehl+" "+User+" "+Word;
    
        system(Befehl);
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Ich habe mir den string Befehl auch mal ausgeben lassen , es ist alles ok.



  • DilBahadur schrieb:

    Anscheinend reicht es dann doch nicht zu wissen wie es teoretisch funktioniert, denn der Compiler gibt mir immer noch einen fehler aus...

    Das ist ja eine sehr präzise Beschreibung ...

    system( Befehl.c_str() );
    


  • Vielen Dank,

    für eure Hilfe, es funktioniert zwar alles , könntet ihr mir aber bitte erklären warum man ".c_str()" hinter den string schreiben muss?
    :p


  • Mod

    system ist noch ein Befehl aus der C-Bibliothek, damals gab es noch keine std::strings . In einer Referenz kannst du sehen, dass system einen const char* erwartet, was in C die Art und Weise ist, mit Zeichenketten umzugehen. std::string::c_str() macht dir aus einem std::string einen const char* mit dem gleichen Inhalt in einem zu C kompatiblen Format.



  • Aha damit hätte sich auch das geklärt,
    nochmals vielen dank!


Anmelden zum Antworten