-2
Ich versuche, eine Datei mit etwas Text darin zu erstellen, der in einen bestimmten Ordner gehen muss. Es wird jedoch erstellt, aber im selben Ordner wie die exe. Hier ist der Code:C++ Ofstream erstellt keine Datei an einem bestimmten Ort
const char* name;
char path[200];
int main()
{
cin.getline(path, 230,'\n');
DIR *dir;
name = path;
struct dirent *ent;
if ((dir = opendir(name)) != NULL)
{
while ((ent = readdir(dir)) != NULL)
{
ofstream file(path, ios::out | ios::trunc);
file.open("somename");
file << ent->d_name + " something";
file.close();
}
closedir(dir);
}
else
{
perror("");
}
}
Was mache ich falsch?
'file.open ("some name");' wird die Datei im aktuellen Arbeitsverzeichnis erstellen, ohne spezifischen fie Weg gegeben. – user0042
Bitte beachten Sie, dass Sie die resp. enthält am Anfang Ihrer Quelle. Die notwendigen Funktionen für Bibliotheksfunktionen werden normalerweise auf der man-Seite der Funktion selbst erwähnt. (Sie fehlen in Ihrem [MCVE] (http://stackoverflow.com/help/mcve), hoffentlich nicht in Ihrem "echten" Programm.) – Scheff
Wenn Sie eine Datei in einem bestimmten Verzeichnis speichern wollen, stellen Sie entweder die resp . relativen oder absoluten Dateipfad (mit Verzeichnissen) oder ändern Sie das aktuelle Verzeichnis zuvor. Sie können dies in Ihrem Programm mit ['chdir()'] tun (http://man7.org/linux/man-pages/man2/chdir.2.html). – Scheff