1. 程式人生 > >讀取bin檔案,並且按結構體賦值列印

讀取bin檔案,並且按結構體賦值列印

目標:讀取一個bin檔案,並且將bin檔案中的資料,按位元組對齊賦值給結構體,並且打印出結構體的內容

目前思路是簡單的先將bin檔案資料一次性讀到一個數組中,再將陣列強制轉換為結構體

    char buff[256]
    FILE *fp;
    fp = NULL;
    fp = fopen(argv[1], "rb");
    if (NULL == fp)
    {
        printf( "The file was not opened\n");
        return;
    }
    fread(buff, 1, 256, fp);
    
struct A a = (struct A) buff;

另外,在部落格看到一個輸出結構體的demo,貼在這裡

只需要傳入要列印結構體的結構體指標和結構體大小,就可以進行列印,且可以控制一行列印的位元組數和位元組與位元組之間是否需要留一個空格

void print_struct_content(void *strp, size_t size)
{
    size_t i;
    char *printbit = (char *)strp;
    int format = 0;
    for (i = 0; i < size; i++)
    {
        printf(
"%02x", printbit[i]&0XFF); format++; if (0 == (format % 4)) { printf("\n"); } } }

 

參考:

https://blog.csdn.net/XIAXIA__/article/details/9360149