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

MrMonkey

Frischling

  • »MrMonkey« ist der Autor dieses Themas

Beiträge: 25

Beruf: Azubi

  • Private Nachricht senden

1

20.05.2010, 22:56

Logfile 8.8, Textout

Hallo miteinander,
Da Man die Logfileklasse nicht öffnen kann, da sie zu alt ist?! Und sie sich auch nicht konvertieren lässt, wollte ich wenigstens den umgang mit textout usw. üben..
Allerdings scheiterte ich schon an der kleinsten Übung :(

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <stdio.h>
using namespace std;

int main()
{
FILE *pLogDatei;
const char *LogName;
pLogDatei = fopen (LogName, "w");
Textout ("Hallo TEST");
fclose (LogName);

return 0;
}


Mängel:
-'fopen': This function or variable may be unsafe.
-"Textout": Bezeichner wurde nicht gefunden.
-'fclose': Konvertierung des Parameters 1 von 'const char *' in 'FILE *' nicht möglich
-Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.


Danach wollte ich die Datei(namen) mit fstream speichern allerdings so, dass ich sie mit dem texteditor lesen kann...

ofstream Output ("Test.txt",?????);

Vielen dank für jede Hilfe :)

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

2

20.05.2010, 23:51

Willkommen im Forum ;)


mit fopen öffnest du die Datei... was du zurückbekommst ist eine art Handle also eine Schnittstelle zu dieser datei.
Bei fclose musst du also diese schnittstelle wieder schließen. also musst du ihr pLogDatei statt LogName übergeben.
(Sieht man ja auch an der Fehlermeldung "const char*" ist falsch (LogName) und es wird "FILE*" erwartet (pLogDatei).

dass fopen unsafe sein mag kannst du getrost ignorieren ;)

bei Textout muss es sich um eine Funktion aus dem Beispiel handeln, du musst also nochmal gucken ob die nicht irgendwo definiert ist.

Du kannst theoretisch jede Datei mit einem Texteditor öffnen ;) für das was du machen willst reicht std::ios::out.
Wenn die Datei bereits existiert und du nur hinten ranschreiben willst kannst du noch std::ios::app nehmen.
Du kannst auch einfach den Parameter weglassen, da is nämlich ein defaultvalue gessetzt (weiß gerade nicht welches ;) )

Also einfach

std::ofstream Output("Test.txt");

MrMonkey

Frischling

  • »MrMonkey« ist der Autor dieses Themas

Beiträge: 25

Beruf: Azubi

  • Private Nachricht senden

3

21.05.2010, 06:47

Danke für die schnelle antwort :)..
Wenn ich ios::out bzw nichts schreibe, steht der Text trotzdem nur als Chinesische Zeichen in der Textdatei..
Das auslesen usw. funktioniert ja ich möchte nur ohne jegliches programm (außer den Texteditor ) den Text lesen können

4

21.05.2010, 08:26

Probiers mal so:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    string output = "Hallo TEST"; // String, der ausgegeben werden soll
    fstream file("Test.txt", ios::out); // Datei mit Hilfe des Konstruktors öffnen
    
    if(file.good()) // Überprüfen ob die Datei geöffnet und beschreibbar ist
    {
        // c_str() liefert einen char String zurück und size() die String Größe
        file.write(output.c_str(), output.size()); 
        file.close(); // Datei schließen
    }
    else // Wenn die Datei nicht geöffnet werden konnte
    {
        // Fehlermeldung ausgeben
        cout << "Die Datei konnte nicht geoeffnet werden!";
        cin.get(); // Auf Eingabetaste warten
    }

    return 0;
}
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

MrMonkey

Frischling

  • »MrMonkey« ist der Autor dieses Themas

Beiträge: 25

Beruf: Azubi

  • Private Nachricht senden

5

21.05.2010, 17:17

Danke jetzt funktioniert alles einwandfrei =D

Werbeanzeige