C ++中的文件分配表(FAT8)实现错误?

时间:2014-11-25 13:34:06

标签: c++ file file-io fat

我正在尝试模拟FAT8 File_Allocation_Table。 FAT条目从-1到255(包括-1和255)不等。目录条目包含特定目录的FAT表的起始地址。

每当起始地址大于127时,它就会给出一个负数。可以使用偏移将负数转换为+ ve数。但是当条目包含-1和255时,问题变得很难,因为两者都给出相同的值。

如何处理这种情况?

#include<bits/stdc++.h>
#define SIZE 256 
using namespace std;

struct Dir{
    char fname[SIZE]; //File Name 
    char start;//1st entry in FAT
    char end;//Last entry in FAT
}dir;

char FAT[SIZE];
int NoOfFile;
char dfname[ ]="dir.txt";

int main(){
    ofstream fout;
    ifstream fin;
    char name[256];
    cout<<"Enter file name\n";
    cin>>name;
    dir.start=255;
    dir.end=3;
    strcpy(dir.fname,name);

    fout.open(dfname);
    fout.write((char*)&dir,sizeof(dir));
    fout.close();

    fin.open(dfname);
    fin.read((char*)&dir,sizeof(dir));
    cout<<dir.fname<<" "<<(int)dir.start<<" "<<(int)dir.end<<"\n";
    fin.close();
    return 0;
}

0 个答案:

没有答案