0

次のコードでエラーが発生します。

FILE    *fp;
int     patno;
int     h, i, j, l, m;
int     i1, i2, i3;


 if( (fp=fopen(filename, "r")) == NULL ) {
    printf("\"%s\" not found!!\n", filename);
    return(-1);
}

for( h=0; h<4; h++ ) {
    l = 0;
    for( i3 = 0; i3 < 3; i3++ ) {
        for( i2 = 0; i2 < PATTERN_HEIGHT; i2++ ) {
            for( i1 = 0; i1 < PATTERN_WIDTH; i1++ ) {
                if( fscanf(fp, "%d", &j) != 1 ) {
                    printf("Pattern Data read error!!\n");
                    return -1;
                }
                 --..rest of code..--

ファイルが存在し、パスが正しい場合、if(fscanf(fp...)ポインター fp の値を持つ行0x00000000<Bad ptr>..

何か案は?

4

1 に答える 1

1

bmpファイルにはテキスト形式の数値が含まれていないため、fscanfは1ではなく0を返します。ファイルをバイナリ(モード "rb")で開き、freadでフィールドを抽出する必要があります。

于 2012-10-08T10:14:54.210 に答える