FOPEN mit Hexadezimal in Funktion ausgelagert (C)
-
Moin Moin,
ich will Hexzahlen aus einer Textdatei rauslesen. Das ist ja ganz simpler Shit... und das gibt es auch schon in 1000 Threads (entschuldigung). Wenn ich mein Skript in der Main habe funktioniert es auch. Aber wenn ich es in einer Funktion auslagere stürzt er nach dem einlesen ab weil die variable, in die ich schreibe 'corrupted' sei.Wäre cool, wenn mir da jemand n Tipp geben könnte!Hier erstmal der C-code:
int main(){ unsigned char zahl1=0; //LESE FILE ÖFFNEN FILE *read_datei; read_datei = fopen ("text.txt", "r"); //Fehlerabfrage: if(read_datei==NULL){ printf("\n-- ERROR: Zu komprimierende Datei nicht verhanden!! --\n"); system("PAUSE"); exit(1); } //Daten in Zwischenspeicher schreiben: while(!feof(read_datei)){ //einlesen fscanf(read_datei,"%x",&zahl1); //Ausgeben printf("%x", zahl1); } fclose(read_datei); system("PAUSE"); return 0; }
In der Funktion ausgelagert sieht es dann so aus:
void lesen(){ unsigned char zahl1=0; //LESE FILE ÖFFNEN FILE *read_datei; read_datei = fopen ("text.txt", "r"); //Fehlerabfrage: if(read_datei==NULL){ printf("\n-- ERROR: Zu komprimierende Datei nicht verhanden!! --\n"); system("PAUSE"); exit(1); } //Daten in Zwischenspeicher schreiben: while(!feof(read_datei)){ //einlesen fscanf(read_datei,"%x",&zahl1); //Ausgeben printf("%x", zahl1); } fclose(read_datei); }
Funktion aufrufen:
int main(){ lesen(); system("PAUSE"); return 0; }
-
Ok, Dein edit macht die Frage klarer.
-
Ja, ne is klar.
Jetzt wissen auch alle was du in deiner Funktion vergessen hast.Nebenbei ist %x (bei scanf) zum einlesen von einem int da und nicht für char.
-
Danke!!! Die variable, in die geschrieben wird muss ein int sein.
Wenn es in der Main steht geht es komischerweise mit char
-
MiezenKurt schrieb:
Wenn es in der Main steht geht es komischerweise mit char
Nein, tut es nicht.
Da fällt der Fehler bei dir nur nicht auf. Ganz, ganz übel.Du kannst natürlich auch den passenden Formatspecifier bzw. length sub-specifier für char nehmen.
-
MiezenKurt schrieb:
Wenn ich mein Skript in der Main habe funktioniert es auch. Aber wenn ich es in einer
Hä, was für ein Skript?
-
Konfus schrieb:
MiezenKurt schrieb:
Wenn ich mein Skript in der Main habe funktioniert es auch. Aber wenn ich es in einer
Hä, was für ein Skript?
sein skript