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

1

02.10.2011, 13:37

[C++] Datei-Ausgabe per fprintf

Hi,

ich habe ein Problem mit C++. Ich arbeite momentan mit dem Buch "C++ für Spieleprogrammierer" und bin gerade bei dem erstellen der Logfile-Klasse. Soweit funktioniert auch alles.
Jetzt will ich selbst ein bisschen herumprobieren und per fprintf einen zuvor eingegebenen Text in eine TXT oder HTML Datei zu schreiben.

Hier mein Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
char Text[64];
FILE * pDatei;
printf("Gib den Text ein der gespeichert werden soll:\n ");
cin.get(Text[63]);
pDatei = fopen("gespeichert.txt", "w");

fprintf(pDatei, Text);
fflush(pDatei);
fclose(pDatei);

printf("Enter zum Beenden!!!");


Wenn ich jetzt die erstellte Datei öffne, stehen dort nur irgentwelche Zeichen.
Ich habe es auch schon per "fwrite" und "fstream" probiert, aber es werden immer nur Zeichen statt der gewünschte Text ausgegeben.

Was mache ich falsch? Hoffe ihr könnt mir helfen!

lg michi_95

Harry222

Alter Hase

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

2

02.10.2011, 13:43

Versuch mal statt:

C-/C++-Quelltext

1
cin.get(Text[63]);
das:

C-/C++-Quelltext

1
cin.get(Text);

So, wie du es da geschrieben hast, versuchst du den eigegebenen Text in die 64. char-Variable deines Arras zu schreiben... ;)
Und ein ganzer Text passt nicht in einen char-Wert!
Also statt nur eines char-Wertes das ganze Array übergeben, dann sollte es funktionieren! :)

Der Rest sollte soweit richtig sein... :)

EDIT:
Fast vergessen:
Wilkommen im Forum! :D

Mfg Harry222

3

02.10.2011, 14:05

Schau dir nochmal die get-Funktion an.

MfG
Check

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Checkmateing« (02.10.2011, 14:11)


4

02.10.2011, 14:06

EDIT:
Fast vergessen:
Wilkommen im Forum! :D

Danke :D

Wenn ich es so probiere, wie du es vorgeschlagen hast, dann kommt ein Fehler,
aber ich hab noch mal im Buch nachgeschlagen, wie man Strings in ein char-Array schreibt und wenn ich es so mache klappt es:

C-/C++-Quelltext

1
cin.get(Text, 63);

Trotzdem danke für deine Hilfe!

michi_95

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

5

02.10.2011, 14:12

Mach das ganze mal lieber mit Streams.
Auch das Ausgeben von Texten usw mit Streams machen ;).

Hier ein Tutorial : http://www.willemer.de/informatik/cpp/fileop.htm

MfG Stazer

Harry222

Alter Hase

Beiträge: 864

Beruf: Student

  • Private Nachricht senden

6

02.10.2011, 14:19

Wenn ich es so probiere, wie du es vorgeschlagen hast, dann kommt ein Fehler,
aber ich hab noch mal im Buch nachgeschlagen, wie man Strings in ein char-Array schreibt und wenn ich es so mache klappt es:

C-/C++-Quelltext

1
cin.get(Text, 63);
Stimmt!
Hatte die genaue Definition der Funktion nicht mehr im Kopf... ^^

Mfg Harry222

Werbeanzeige