Neuer ordner soll heißen wie cin eingabe
-
HiHo

Hab mal folgende Frage: wie lautet der befehl das ein Ordner erstellt wird der den namen des zuvor eingetragenen cin-wertes erhält?
Hab mal folgendes probiert:
cin >> schueler; system("mkdir "+schueler);Nur meckert da der Compiler rum.
Kann mir da einer kurz weiter helfen? Sonst kann ich leider nicht weiter arbeiten.
Danke schonmal

Gut Schuß
VuuRWerK
-
hi du musst das in einen string schreiben!!
string a="ordnername";
-
Die variable schueler ist schon als string deklariert wurden. Deswegen wundert mich es auch.
Gut Schuß
VuuRWerK
-
Wenn dir jemand helfen soll dann poste bitte den kompletten relevanten Code und selbstverständlich auch die Compilerfehlermeldung.
-
@VuurWerk: Aber "mkdir" ist noch kein std::string sondern ein char*, daher wird der op+ für char* aufgerufen der ganz klar Zeigerarithmetik versucht

Also:
#include <iostream> #include <string> #include <cstdlib> ... string command = "mkdir "; string schueler; getline(cin,schueler); command += schueler; system(command.c_str());MfG SideWinder
-
cin >> schueler; system((string("mkdir ")+schueler).c_str());Kurt
-
Ich danke Dir genau so soll es funktionieren!
Ich bedanke mich ganz rechtherzlich bei Dir!
Gut Schuß
VuuRWerK
-
Na ja aber SideWinder's Lösung is schon besser. Meine ist nur kürzer. ( dafür aber viele viele temporäre strings ).
Kurt
-
SideWinder schrieb:
@VuurWerk: Aber "mkdir" ist noch kein std::string sondern ein char*, daher wird der op+ für char* aufgerufen der ganz klar Zeigerarithmetik versucht

Das ist Unsinn
es gibt einen "string operator+(char*,const string);", der bei diesem Befehl greift - der macht schon "echte" String-Addition, liefert jedoch einen string zurück und keinen char* (der von system() erwartet wird).
-
Davon wusst ich noch gar nichts, hab bis jetzt auch immer wie Zuk geklammert

MfG SideWinder
-
Verstehs jetzt auch, Dann wär die kürzeste Lösung also
system ( ( "makedir" + schueler).c_str() );Kurt