2017-05-15 3 views
-2

Ich habe eine Liste von Dateien. Für jede dieser Dateien muss ich herausfinden, ob die ersten zwei Zeichen "#!" Sind. Wie mache ich das?Wie kann ich eine magische Zahl aus einer Datei lesen?

+7

die beiden Zeichen lesen. Überprüfen Sie, ob das erste "#" und das zweite "!" Ist. –

+2

'#!' Sieht für mich nicht wie eine Nummer aus ... nicht einmal eine magische. –

+0

Ich habe versucht, aber ich bekomme verwirrende Symbole. – alessiovolpe

Antwort

2

Legen Sie die zwei Zahlen mit fgetc() (als @WilliamPursell vorgeschlagen) und dann vergleichen:

int i1, i2; 
FILE *file; 

file = fopen("yourfile", "rb"); 
if (file == NULL) { 
    printf("Error: failed to open file"); 
    return 1; 
} 
i1 = fgetc(file); 
i2 = fgetc(file); 

// 23h...#, 21h...! 
if (i1 == 0x23 && i2 == 0x21) { 
    // magic number 
} 
+0

Vielleicht überprüfen Sie den Rückgabewert von 'fopen' –

+0

Ich habe es absichtlich weggelassen, da es nicht der Fokus der Frage ist. – redxef

+2

Ich dachte, Fehlercode zu schreiben ist auch der Fokus der Frage –

Verwandte Themen