.| Autor | Beitrag |
|---|---|
|
000 31.10.2001, 14:40 tobsn |
also ich hoffe ihr könnt mir da helfen Also: ich muss ein file einlesen, hat bis jetzt auch funktioniert nur hab ich jetzt das ganze in eine while schleife gepackt und der gesagt sie soll die bytes lesen (fgetc()) bis das file zu ende is (also EOF, bzw -1) ich hab also eine while schleife geschrieben (while(z != EOF)) und das funktioniert auch bis zum erstem mal HEX FF in einem Byte steht dann bricht die schleife ab, also wird FF anscheinend als EOF interpretiert. is das normal? in Java geht es es, in c++ nicht, wieso? weis das einer von euch? danke -- |
|
Profil || Suche |
|
001 31.10.2001, 15:37 Hellfire |
Probier mal while (!feof(filepointer)) aus. -- |
|
Profil || Suche |
|
002 31.10.2001, 17:45 Tron |
wenn 0xff als signed byte interpretiert wird, ist es -1 btw: ist nicht zeichen nummer 26 (0x1a) EOF? --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
003 31.10.2001, 22:32 tobsn |
(!feof(Filepointer)) |
|
Profil || Suche |
|
004 01.11.2001, 15:34 tobsn |
ja 0x1a is EOF das und weil in dem file dasich da hab andauernd 1a vorkommt kann ichs nciht richtig öffnen kann man das irgendwie umgehn?? -- |
|
Profil || Suche |
|
005 01.11.2001, 17:17 Another1 |
wenn es ein binary file is, ganz wichtig: versuch mal dann nochmal --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
006 01.11.2001, 17:25 tobsn |
danke, jetzt gehts! |
|
Profil || Suche |
|
007 03.11.2001, 00:52 Prefect |
Das b bewirkt, daß selbst DOS die Datei als Binärdatei anerkennt. Unter anderem werden z.B. CR/LFs (\r\n) beim Lesen nicht in LFs (\n) umgewandelt. Im normalen (=t) Modus findet diese Umwandlung statt, da DOS hirnverbrannterweise Zeilenumbrüche in Textdateien als \r\n darstellt, während Unix und C-Programme dies mit \n tun. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
008 03.11.2001, 01:37 Kriz |
Das ist mir aber neu, Prefi, daß Unix \n verwendet. Soweit ich das Lineend-Chaos kenne, läuft es so ab: Win/DOS: CR/LF K:R-I)Z++ |
|
Profil || Suche |
|
009 03.11.2001, 16:41 Tron |
@Kriz: @Prefect: andererseits ist es reine definitionssache was man als markierung fuer einen zeilenwechsel ansieht... --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
010 03.11.2001, 16:45 Mazze |
Jaja......bei machen ist alles was MS macht hirnverbrannt.... [edit] BattleTech-MOD: Dieser Beitrag wurde am 03.11.2001 um 16:52 von Mazze bearbeitet. |
|
Profil || Suche |
|
011 05.11.2001, 18:31 Prefect |
Also, Unix verwendet _natürlich_ \n, immerhin verwendet C \n und C wurde für Unix entwickelt. Da hätte jemand sehr dumm sein müssen, um es anders zu machen. Ich hab auch gerüchteweise gehört, daß Macs \r verwenden, also scheint die Info im obigen Post korrekt zu sein. Ich denke es ist generell hirnverbrannt, eine einzelne Einheit (also Zeilenwechsel) in Textdateien mit zwei Zeichen darzustellen. Natürlich stimmt das mit Carriage Return und Line Feed. Aber nenn mir bitte eine einzige Situation, in der ich in einer normalen Textdatei ein Carriage Return ohne Line Feed bzw. umgekehrt benötige... cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
012 05.11.2001, 20:14 Kriz |
Na ja =) Darüber läßt sich zanken: Zuerst Linefeed und dann Wagenrücklauf oder andersrum. Ist halt alles noch aus Nadeldruckers Zeiten... Obwohl sinnigerweise die erste Kombination am Denkbarsten ist (Stichwort Bidirektionaldruck). --K:R-I)Z++ |
|
Profil || Suche |

