Ordner erstellen
-
Hallo,
mein Konsolenprogramm schaut gerade so aus( bin noch in der Lernphase, daher wäre ich für Verbesserungsvorschläge dankbar)
#include <StdAfx.h> #include <direct.h> #include <iostream> #include <fstream> //´File Stream #include <string> using namespace std; void trennlinie(){ cout << "----------------------------" << endl; return; } void txtFile(){ _mkdir("Dateien3"); ofstream file; file.open("Dateien3/test.txt"); file << "Hallo" <<endl; file.close(); } int main(){ trennlinie(); cout << "Testprogramm" << endl; trennlinie(); cout << "\n" << endl; txtFile(); cin.get(); return 0; }Meine Fragen: Ich will jetzt dass bei _mkdir der Dateiname variabel ist.
Pseudocode:string dateiname; _mkdir(dateiname); file.open(dateiname+"/test.txt");In dem Stil also... Das Problem ist, ich habe folgendes versucht:
string dateiname = "Datei1"; _mkdir(dateiname+"/test.txt");Hat aber nicht geklappt. Wo liegt mein Fehler?
-
Kommt _mkdir nicht aus direct.h einem Header der Sprache C

Dann kannst du keine C++Strings übergeben.
Du solltest dann die C-String wählen.Ob es eine C++ Variante von mkdir gibt

Beim fstream und dem öffnen der Datei sind beim gcc ab C++11-Einstellung C++Strings möglich. Bei anderen Compilerschaltern sind da auch C-Strings angesagt.
Da du Visual Studio nimmst, schau in der Compilerdoku oder in der MSDN zu deinem Compiler nach was da gefordert ist. Es kommt wahrscheinlich auch auf die Version deines VS an, also VS2005 oder VS2010.
MfG f.-th.
-
std::string hat die Methode
c_str(). Übergib_mkdireinfachdateiname.c_str(), dann klappt es.