Hilfe!! BMP Datei unter C bearbeiten
-
gy100002000 schrieb:
ja! vielleicht noch eine Frage? brauche ich an diese Stelle unbediente
perror(fname); return 1;
???
ich habe es umgestellt:if( bitmapFileheader.bfType != 0x4D42 ) { printf("keine BMP Datei!!\n"); fclose(file); i=1; return 1; } //printf("Rückgabewert von fclose(file)%d\n",fclose(file)); if ( i==1 ) { perror(fname); return 1; }
int i=0; habe ich ganz am Anfang definiert!
In C ist es üblich, das Funktionen im Fehlerfall eine 1 zurückgeben.
Natürlich gibt es hier auch Ausnahmen.
Der Rückgabewert 0 bedeutet of so viel wie 'kein Fehler'.
Überleg dir mal, ob nach Abarbeitung von Zeile 6 die Zeile 9 ausgeführt werden kann.
-
Überleg dir mal, ob nach Abarbeitung von Zeile 6 die Zeile 9 ausgeführt werden kann.
naja! eigentlich nicht! Weil nachdem
return 1;
wird das Programm schon gestoppt!
if ( i==1 ) { perror(fname); return 1; }
hat eigentlich kein Sinn!
ahja! was ich nicht verstehe ist, wofür ist
perror(fname);
brauchen wir das wirklich?
-
gy100002000 schrieb:
ahja! was ich nicht verstehe ist, wofür ist
perror(fname);
Wofür das ist, kannst du leicht nachprüfen:
FILE* fp; char* file = "Bin ich eine Datei, oder ein Verzeichnis?"; fp = fopen( file, "r" ); if ( !fp ) perror(file);
Es wird eine Meldung auf dem Fehler-Ausgabe-Kanal ( stderr ) ausgegeben.
Kennst du die MSDN? Da kannst du über solche Funktionen genaueres erfahren.gy100002000 schrieb:
brauchen wir das wirklich?
Kommt drauf an. Prinzipiell sollte man alles auf Fehler prüfen, was möglich ist.
Wenn dein Programm irgendwann mal sehr groß werden sollte, könntest du unter Umständen sehr lange mit der Fehlersuche beschäftigt sein. Wenn ein Fehler 'verschluckt' wird und dadurch möglicher weise eine zusätzliche Verkettung weiterer Fehler entsteht, die sich unter Umständen in einer ganz anderen Datei etliche Megabyte vom Entstehungsort entfernt bemerkbar macht.
-
alles klar! ich werde noch mal bei MSDN nachschauen. auf jeden Fall besten Dank!
muss ich ehrlich zugeben, C ist nicht so einfach wie MATLAB !aber langsam mach's auch spass!!