Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
[x] unterschiedliche behandlung von binär und textdateien - warum?

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Lateralus
prolinux-forum-admin


Anmeldungsdatum: 05.05.2004
Beiträge: 1238

BeitragVerfasst am: 02. Dez 2004 19:38   Titel: [x] unterschiedliche behandlung von binär und textdateien - warum?

Hallo

Ich habe ein kleines Prog geschrieben, welches eine Datei öffnet, deren Inhalt Zeichen für Zeichen bearbeitet und in eine andere Datei schreibt. Mein Problem: Binärdateien werden anscheinend anders behandelt.

Code:
char c;
FILE *fp;
fp=fopen(argv[i], "rb");

while( (c=getc(fp)) != EOF)
  ...tue was...

fclose(fp);


Tja... zu dem "...tue was..." Teil kommt er nicht. Bei Textdateien aber durchaus - da läuft er ordentliche bis zum Ende der Datei durch.

Es kam auch schon vor, dass er eine Binärdatei etwa zu einem Viertel bearbeitet hat und dann aus der Schleife raus ist.

Ich kapier's nicht...


Zuletzt bearbeitet von Lateralus am 16. März 2005 13:20, insgesamt 1-mal bearbeitet
 
Benutzer-Profile anzeigen Private Nachricht senden

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 03. Dez 2004 15:30   Titel:

Hi,

dein Fehler ist, daß du das Resultat von getc einem char zuweist. Das Ergebnis ist aber int.

Zudem ist die Unterscheidung zwischen Binär- und Textdateien eine der vielen Idiotien von Windows und DOS. Unter Linux gibt es die allenfalls im FTP-Protokoll. Das Flag "b" bei fopen ist daher ohne Wirkung.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

Lateralus
prolinux-forum-admin


Anmeldungsdatum: 05.05.2004
Beiträge: 1238

BeitragVerfasst am: 03. Dez 2004 17:41   Titel:

Vielen Dank!

Das b-Flag ist auch nur für die Portabilität gedacht (auch wenn's niemals portiert werden soll...)
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy