Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Cf

Frischling

  • »Cf« ist der Autor dieses Themas

Beiträge: 48

Wohnort: Wien

  • Private Nachricht senden

1

06.10.2007, 20:18

ifstream/ofstream

Hallo!

Ich würde gerne einen kleine Texteditor auf Konsolenanwendungsebene programmieren (mit ifstream und ofstream), wobei ich noch zwei Fragen hätte.

1.) Gibt es eine möglichkeit bestimmte dateien welche ich mit ofstream erzeugt habe zu löschen?
2.) Kann ich ofstream für den Namen der Datei eine Variable übergeben?

Das wäre es, schon im Vorraus vielen Dank

Vlg Cf

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

2

06.10.2007, 20:39

1. Wie meinst du das?

2. Natürlich - wie soll das sonst funktionieren^^

// €dit:
wenn du dann nächstes mal noch voraus richtig schreibst... :p

denjo

Treue Seele

Beiträge: 163

Wohnort: BLB

  • Private Nachricht senden

3

06.10.2007, 22:07

zu 1:
Ja sollte möglich sein...
http://www.cplusplus.com/reference/clibrary/cstdio/remove.html
per remove()

ein weiterer Link wäre dieser: http://www.planet-source.de/tipps/3/47.php
"Irren ist menschlich, Vergeben göttlich."
- Alexander Pope -

4

07.10.2007, 12:58

Zitat

1.) Gibt es eine Möglichkeit bestimmte Dateien welche ich mit std::ofstream erzeugt habe zu löschen?
Zu erst einmal ist es egal ob du die Datei mit std::ofstream oder mit CreateFile(WinAPI) erstellt hast. Ok nicht ganz. CreateFile sollte mit UNICODE klar kommen, wobei der NTFS-Treiber von Windows da einen Fehler hat ... aber egal.
In C++ ist es NICHT möglich eine Datei zu löschen. Nicht mit den im C++-Standard enthaltenen Funktionen. Wenn du auf Funktionen des C-Standards zugreifst(s. std::remove aus cstdio) ist es aber durchaus möglich eine Datei zu löschen.

Zitat

2.) Kann ich ofstream für den Namen der Datei eine Variable übergeben?
Ein Parameter einer Funktion ist für gewöhnlich eine Variable die im Funktionsscope besteht. ;) D.h. auch wenn du jetzt den Dateinamen statisch vorgibst, ist er für C++ eine Variable!

C-/C++-Quelltext

1
2
3
std::string file_name("C:\\Programme\\MyProg\\MyProg.exe");
std::ofstream file_stream(filename.c_str());
if (!file_stream) std::cerr << "FEHLER: Datei \" " << file_name << "\" konnte nicht geöffnet werden!" << std::endl; 
...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Cf

Frischling

  • »Cf« ist der Autor dieses Themas

Beiträge: 48

Wohnort: Wien

  • Private Nachricht senden

5

07.10.2007, 20:25

...

Das mit dem löschen passt jetzt.

Zu der Variablen und ofstream möchte ich mein Problem näher erläutern:

Ich möchte eine Variable einlesen, in welche man den Namen der Datei eingibt.

Diese möchte ich meiner if/ofstream funktion übergeben.

Schreibe ich nun

char Abgefragtevariable
.
.
ifstream auslesen ("Abgefragtevariable.hsc" , ios::binary);

dann wir die Datei Abgefragtevariable.hsc genannt, wobei ich wie schon gesagt den Inhalt der Variable als Dateiname moechte.

Vlg Cf

6

07.10.2007, 20:42

Du solltest dich nochmal mit den Grundlagen beschäftigen. " leitet einen String in C++ ein. Dann ist ein "char" nur ein Zeichen. Ein Dateiname besteht aber für gewöhnlich aus mehreren Zeichen. Durch die Null-Terminierung werden C-Strings abgeschlossen. In C++ kannst du aber einfach die Klasse std::string nutzen (s. <string>)

C-/C++-Quelltext

1
2
3
4
std::string var;
// put some name into var

std::ifstream file_stream(var.c_str(), std::ios::binary);
if (!file_stream) return false;
...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Cf

Frischling

  • »Cf« ist der Autor dieses Themas

Beiträge: 48

Wohnort: Wien

  • Private Nachricht senden

7

07.10.2007, 20:55

...

passt, jetzt versteh ich was du meinst.

Funktioniert alles thx

Cf

Werbeanzeige