c++以二进制方式读取任意文件,将读取到的二进制数一堆0,1存储到指针或者数组中

2025-03-02 04:04:40
推荐回答(2个)
回答1:

int read(FILE *fp, int ** buff)
{
    int len = 0; 
    char c; 
    while(fread(&c,1,1,fp)==1)
    {
        int i; 
        *buff = (int*)realloc(*buff, (len+8)*sizeof(int));
        for(i=0;i<8;i++)
        {
            unsigned char t = 1<            (*buff)[len+i] = c&t?1:0; 
        }
        len += 8;
    }
    return len;  
}

void write(FILE * fp, int * buff, int len)
{
    int i;
    for(i=0;i    {
        int j;
        unsigned char c = 0;
        for(j=0;j<8;j++)
        {
            int val = i*8+j            val<<=j;
            c |= val; 
        }
        fwrite(&c, sizeof(char), 1, fp);  
    }   
}


没调试,随手打的,自己调,不行再问吧

回答2:

文件流的形式读写。C++有专门的接口,调用就行