Fortlaufende Verzeichniserstellung mit system-Befehl unter Linux
-
Hallo,
danke für die schnelle Antwort,aber bei mir funktioniert der Code leider nicht
Ich bekomme als Fehlermeldungerror: no match for 'operator<<' in 'stream << k'
error: cannot convert `std::basic_string<char
-
Sorry, Flüchtigkeitsfehler. Mach aus istringstream nur stringstream.
-
Sorry wenn ich dich damit jetzt nerve, aber ich krieg daraufhin folgende Fehlermeldung..(Ich bemüh mich zwar selber rauszufinden was das heißt und wie ich es beheben kann, aber ich denk das Forum ist einfach schneller)
error: cannot convert
std::basic_string<char, std::char_traits<char>, std::allocator<char> >' toconst char*' for
argument `1' to `int system(const char*)'in der for schleife deklariere ich k als int also wie im ersten Beitrag geschrieben. Liegt das der Fehler?
-
Der Fehler ist, dass str() einen String zurückgibt, aber System einen const char* erwartet - glücklicherweise hat String eine Methode, die einen const char* zurückgibt:
system(stream.str().c_str());
-
Ah, noch ein Flüchtigkeitsfehler. Hab das eben nur mit cout getestet, wollte mir nicht die Festplatte zumüllen.

-
Puhhh. Danke.
Aber ich hoffe das ist jetzt die letzte Frage. Er setzt mir die Variable k jetzt immer an den Anfang von dem string. Ich bekomm "0kdir ...." statt "mkdir".Ich sehe, ich muss noch viel lernen.
-
edit
-
#include <string> #include <sstream> #include <iostream> int main( ) { std::string command( "mkdir /tmp/Test" ); std::stringstream stream; for( int k = 0; k < 10; ++k ) { stream.str( command ); // lässt die Leseposition unverändert... stream.seekp( 0, std::ios_base::end ); // ...deshalb manuell an's Ende setzen. stream << k; std::cout << stream.str( ) << std::endl; } }greetz, Swordfish
-
Ausgezeichnet!!!!!
Danke
-
EDIT, mein Fehler