0

以下のデータ (これは char* データの 16 進形式です) を C プログラミングでファイルに書きました。

58 c8 c3 f7 41 22 b1 72 9f 41 50 37 cb 09 d0 11 1d 5a 48 59 96 11 fa 4b fd d5 86 70 18 2c 50 2f fd 67 71 3d 20 fc 17 e1 27 f7 9c be 03 9 74 5 e9 ee 24 9d 0a 06 da 6a 80 20 4d 91 e9 00 a2 ef ae db 1b 5d 39 9c a0 fe 0a 68 4e 0f 37 08 71 0f 15 a0 1a 32 e7 e6 69 53 aa ad 1e 07 8f 10

以下のコードでこのファイルを読み取った後、最初の 63 バイト (00 まで) のみを読み取ります。

    fread(file, 96, 1, infile);

出力: 58 c8 c3 f7 41 22 b1 72 9f 41 50 37 cb 09 d0 11 1d 5a 48 59 96 11 fa 4b fd d5 86 70 18 2c 50 2f fd 67 71 3d 20 fc 17 e1 27 f7 9c be 4 03 64 6c 49 e9 ee 24 9d 0a 06 ダ 6a 80 20 4d 91 e9

ファイルからすべてのデータを読み取るにはどうすればよいですか?

4

3 に答える 3

3

ファイルをテキストモードで開いた可能性があります。バイナリモードで開いてみてください。

于 2014-08-09T06:46:48.760 に答える
3

を介して読み取ったデータをチェックprintfし、%s引数を指定すると、0 バイトで出力が終了します。%xと をループで印刷してみてください。

于 2014-08-09T06:50:10.820 に答える
0
#include <stdio.h>
void main(){
    freopen("inp.txt", "rb", stdin);
    int var;
    while(scanf("%x", &var) == 1){
        printf("%x ",var);
    }
}

出力

ここに画像の説明を入力

于 2014-08-09T07:22:07.437 に答える