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

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

1

28.01.2006, 18:47

fwrite und \n

Hi ich habe ein Problem mit folgendem Code

C-/C++-Quelltext

1
2
3
        fwrite(TextToWrite, sizeof(wchar_t), wcslen(TextToWrite), LogFile);
        char a = '\n';
        fwrite(&a, sizeof(char), 1, LogFile);

Und zwar wird der Text schön geschrieben, aber wenn ich die letzte Zeile nicht auskommentiere, dann wird (anscheinend nachträglich) der in der Datei enthaltene Text mit einem Leerzeichen nach jedem Buchstaben versehen. Die neue Zeile kommt zwar dazu, aber der Text vorher wird halt gestreckt... Weiß jmd woran das liegt oder wie man das verhindern kann?

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

2

28.01.2006, 19:33

ich weiß es zwar nich genau, aber ich schätz es liegt daran, dass du den ersten text in wchar schreibst und das a danach in char...
probier mal, was hierbei passiert:

C-/C++-Quelltext

1
2
3
    fwrite(TextToWrite, sizeof(wchar_t), wcslen(TextToWrite), LogFile);
        wchar_t a = '\n';
        fwrite(&a, sizeof(wchar_t), 1, LogFile);
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

3

28.01.2006, 19:59

geht auch nicht, habs auch schon versucht mit fprints in einen string zu schreiben, gleiches ergebnis.

Anonymous

unregistriert

4

28.01.2006, 20:13

use streams and shit on C

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

5

28.01.2006, 20:17

^^
k werd ich ma versuchen

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

6

28.01.2006, 20:40

vll liegts auch daran, dass du sagst die neue zeile wäre nur ein zeichen.
aber neue zeile sind glaub ich zwei zeichen, einmal runter und einmal wieder an den anfang....
ich hoffe du versteht was ich sagen will... ich bin im moment etwas konfus
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

7

28.01.2006, 20:45

nein ein Zeilenumbruch, also \n, ist eine escape Sequenz und zählt als ein einzelner Character. Ich versteh aber auch nicht warum das nicht klappt..

Anonymous

unregistriert

8

28.01.2006, 21:00

Spik)evil(
Ähme, Du kannst Unicode nicht mit ANSI oder ASCII kreuzen, das geht net.

WENN dann so:

C-/C++-Quelltext

1
fwrite(L"\n\r", sizeof(wchar_t), 3, LogFile);

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

9

28.01.2006, 21:03

was genau meinst du? Also ich hab natürlich, als ich das mit der entsprechenden fprints Version probiert hab mit L"\n" gemacht, aber der Effekt war der gleiche. Oder meinst du was anderes? Und warum nimmst du 3 Schreibvorgänge? Oder war das n Tippfehler?

Anonymous

unregistriert

10

28.01.2006, 21:11

L"\n\r" sind 3 Escapesequenzen. 1. Zeilenumbruch, 1. Rückschritt und 1 Nullterminierung: 3

Nebenbei: Bitte benutz fstreams, diesen fwrite und fread kram kann man nur noch in die tonne kloppen, wir sind in ISO C++ net in ANSI C

Werbeanzeige