2017-05-15 3 views
-2

私はファイルのリストを持っています。それらのファイルのそれぞれについて、最初の2文字が '#!'であるかどうかを調べる必要があります。これはどうすればいいですか?ファイルからマジックナンバーを読み取るにはどうしたらいいですか?

+7

2つの文字を読みます。最初のものが「#」で、2番目のものが「!」であることを確認してください。 –

+2

'#!'は私にとっては数字のようには見えません。 –

+0

私は試しましたが、混乱する記号があります。 – alessiovolpe

答えて

2

(@WilliamPursellが示唆したように)fgetc()を使用して2つの数値をロードし、それらを比較します。

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

おそらく 'fopen'からの戻り値を確認してください –

+0

質問の焦点では​​ないので、意図的に省略しました。 – redxef

+2

私はバグのないコードを書くことも質問の焦点だと思った。 –

関連する問題