fstream Pfade angebebn



  • 🙂 Hallo,
    bin ziemlich neu in C++ und möchte gerne folgendes Problem lösen. Mein Programm soll eine Datei anlegen. Der Dateiname bsteht aus "Name/Tag/Monat/Stunde/Minute/Sekunde".
    Alles schön und gut, klappt auch, aaaaber:
    Jetzt soll mein Programm die Dateien in dem Ordner
    D:\temp spichern. Wie geht das?

    Mein C++ Code:

    fstream f; 
        f.open("D:\\temp\\.(dateiname)" /*dateiname*/, ios::out); 
    		if (f.good())
    		{
        f << "Entry;" << y << endl; 
    		f << "Exit;123456" << endl;
        f.close();
    		}
    		else
    		{
    			cout << "Fehler!" << endl;
    		}
    

    Danke im Voraus 🙂



  • Sorry falscher Code...

    Hier der richtige:

    fstream f; 
        f.open(dateiname, ios::out); 
    		if (f.good())
    		{
        f << "Entry;" << y << endl; 
    		f << "Exit;123456" << endl;
        f.close();
    		}
    		else
    		{
    			cout << "Fehler!" << endl;
    		}
    

  • Mod

    Was genau ist jetzt das Problem dabei? Der erste Code macht doch schon, was du willst und der zweite vermutlich auch, wenn man die fehlenden Stellen ergänzt.



  • Nein, er erstelllt die Dateien da wo die .exe liegt.
    Er soll die Dateien aber in D:\temp erstellen.
    Sorry wenn ich mich unklar ausgedrückt habe 😉
    Hier etwas mehr Code:

    char dateiname[256]="";
    	struct tm *LokalZeit;
    	time_t Zeit;
    
    	time(&Zeit);
    	LokalZeit = localtime(&Zeit);
    
    	sprintf(dateiname, "Piece%02d%02d%02d%02d%02d.csv",
    		LokalZeit->tm_mday,
    		LokalZeit->tm_mon +1,
    		LokalZeit->tm_hour, 
    		LokalZeit->tm_min,
    		LokalZeit->tm_sec);
    
    	fstream f; 
    	f.open(dateiname, ios::out); 
    	if (f.good())
    	{
    		f << "Entry;" << y << endl; 
    		f << "Exit;123456" << endl;
    		f.close();
    	}
    	else
    	{
    		cout << "Fehler!" << endl;
    	}
    


  • 😮 was machst du denn da mit den char-arrays und mit sprintf?



  • Wie gesagt bin neu in der Sprache...
    und habe das mithilfe des Internets gemacht



  • sprintf soll der Variablen dateiname das aktuelle datum + uhrzeit übergeben. Klappt auch


  • Mod

    Gast123 schrieb:

    Nein, er erstelllt die Dateien da wo die .exe liegt.

    Jetzt hast du den Pfad ja auch wieder weg gelassen. Was hindert dich, ihn wieder rein zu machen?

    Gast123 schrieb:

    Wie gesagt bin neu in der Sprache...
    und habe das mithilfe des Internets gemacht

    Mach das nicht! Lern die Sprache. Copy&Paste ohne Verstand ist nicht programmieren. Gehe ich recht in der Annahme, dass du das sprintf-Gedöns irgendwo abgeschrieben hast (aus einem C-Forum?) und keine blasse Ahnung hast, was das überhaupt macht?



  • [quote="SeppJ"]

    Gast123 schrieb:

    Nein, er erstelllt die Dateien da wo die .exe liegt.

    Jetzt hast du den Pfad ja auch wieder weg gelassen. Was hindert dich, ihn wieder rein zu machen?

    Ich hab das wieder rausgenommen weil der Compiler gemeckert hat und es nicht funktioniert


Anmelden zum Antworten