首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问:关于结构体写入文件的有关问题

2013-04-26 
请教:关于结构体写入文件的问题如何编写一个函数,使得传入任意大小,结构(可控范围内)的结构体都能实现将其

请教:关于结构体写入文件的问题
如何编写一个函数,使得传入任意大小,结构(可控范围内)的结构体都能实现将其写入文件并读出的功能?

关键是任意结构体,若只是指定的一个结构体应该就好实现很多!

另:有没有一些用C写的比较经典的编写并解析配置文件的例子呢?求教! Structure
[解决办法]
void write( void* pStruct, int nlen )
{
fl = fopen(XXX, wb);
for( int nID=0; nID < nLen; ++nID )
 fwrite( (char)pStruct[nID], 1,1,fl);
fclose(fl);
}

void Read( void*& pStruct, int nLen )
{
 fl = fopen(XXX,rb);
 pbuf = malloc(nLen);
 fread( pbuf, 1, nLen, fl);
 fclose(fl);
 pStruct = pbuf;
}

2、配置文件要看你写成什么格式,写成xml,网上搜个cmarkup就行。
[解决办法]

struct DATA
{
    int a;
    char b;
    double c;
    char d[10];
};



 int main()
{
    // 先写一个
    FILE *pf = fopen("test.dat" ,"w");
    if (pf)
    {
        DATA data;
        data.a = 10;
        data.b = 'X';
        data.c = 123.45;
        strcpy(data.d ,"hello");
        fwrite(&data ,sizeof(data) ,1 ,pf);
        
        fclose(pf);
    } 

    // 读出来看看
    pf = fopen("test.dat" ,"r");
    if (pf)
    {
        DATA dataTest;
        fread(&dataTest ,sizeof(dataTest) ,1 ,pf);
        printf("%d %c %f %s\n" ,dataTest.a,dataTest.b,dataTest.c,dataTest.d);
        fclose(pf);
    }
    return 0;
}

热点排行