请问flashget的记录保存方式是怎样的?打开flashget的安装目录,下面有几个default文件,用记事本打开,发现这里保存了所有记录,这些记录不是完全用字符串的形式保存的,因为有不可见字符!不知道他是怎么做的?

解决方案 »

  1.   

    问题解决io流文件 测试代码:
    #include <iostream.h>
    #include <stdio.h>
    #include <process.h>
    #include <stdlib.h>
    struct student 
    {
    int num;
    char name[20];
    float grade;
    };void show_str(student a, char *name)
    {
    cout<<name<<";"<<endl;
    cout<<a.num<<" "<<a.name<<" "<<a.grade;
    cout<<endl;
    }int main()
    {
    FILE *fp;
    student st={1001,"ZhangBin",85.5}; //
    //显示st结构数据
    //
    show_str(st,"st"); //
    //打开a.dat文件
    //
    if((fp=fopen("c:\\a.dat","wb+"))==NULL)
    {
    cout<<"\nCould not open the file."<<endl;
    cout<<"Exiting program."<<endl;
    exit(1);
    } //
    //写结构数据到文件
    //
    fprintf(fp,"%d %s %f",st.num,st.name,st.grade); //
    //恢复读写指针的位置
    //
    rewind(fp); //
    //读文件中的数据结构并赋值给结构,最后显示
    //
    student temp;
    fscanf(fp,"%d %s %f",&temp.num,temp.name,&temp.grade);
    show_str(temp,"temp");
    cout<<"--------------------------------------"<<endl; //
    //操作结束,关闭文件指针
    //
    fclose(fp);////////////////////////////////////////////////////////////////////////////
    //将数据结构当做一个数据块进行读写
    // //
    //打开文件
    //
    if((fp=fopen("c:\\b.dat","wb+"))==NULL)
    {
    cout<<"\nCould not open the file."<<endl;
    cout<<"Exiting program."<<endl;
    exit(1);
    } int i=0;
    student starr[3]={{101,"WangPing",92},{102,"Li",85},{103,"LiuMin",97}}; //
    //显示数据内容
    //
    for(i=0;i<3;i++)
    {
    show_str(starr[i],"starr");
    } //
    //将结构数组当成数据块写入文件
    //
    fwrite(starr,sizeof(student),3,fp); //
    //恢复读写指针位置
    //
    rewind(fp); //
    //按数据块从文件中读取数据,赋值给结构数组
    //
    student temp_arr[3];
    if(!feof(fp))
    {
    fread(temp_arr,sizeof(student),3,fp);
    } //
    //显示数组
    //
    for(i=0;i<3;i++)
    {
    show_str(temp_arr[i],"temp_starr");
    } //
    //关闭文件指针
    //
    fclose(fp);
    exit(0); return 0;
    ///////////////////////////////////////////////////////////////////////////////
    }