Ошибка реализации таблицы размещения файлов (FAT8) в C ++?

Я пытаюсь смоделировать FAT8 File_Allocation_Table. Записи FAT варьируются от -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;
}

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]