Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ClO_own
0 / 0 / 0
Регистрация: 15.04.2012
Сообщений: 7
#1

Работа перемещающего загрузчика - C++

15.04.2012, 14:33. Просмотров 461. Ответов 0
Метки нет (Все метки)

Добрый день, необходимо разработать приложение, моделирующее работу перемещающего загрузчика. Программа считывает двоичный файл следующей структуры: N A1 A2 ... AM D0 D1 ... DK
N - кол-во ячеек с адресами данных.
A - ячейки с адресами данных.
D - ячейки с данными.
Необходимо изменить значение в области данных по адресам A1 A2 ... AM на величину S, вводимую с клавиатуры. Ячейки в файле 16 разрядные.
Проблема в следующем, данные не переписываются в файл, а лишь добавляется 1 ячейка в конец файла, при последующих запусках приложения файл и вовсе не изменяется.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <fcntl.h>
 
using namespace std;
 
int main()
{
    char NameOfFile[20];
    int err, i;
    unsigned short int Numb, DataCell, S, OffsetInFile;
    unsigned short int *array;
    long position;
    FILE *f1;
 
   cout<<"Enter file name: ";
    gets(NameOfFile);
    cout<<"Entered name: "<<NameOfFile<<"\n";
    if((f1 = fopen(NameOfFile, "rb+wb"))==NULL)
    {
           cout<<"Error at opening\n";
           system("pause");
           return 1;
    }
    position=ftell(f1);
    cout<<"Position in file: "<<position<<"\n";
    fread(&Numb, sizeof(unsigned short int), 1, f1);
    cout<<"Number of cells for modification:"<<Numb<<"\n";
    array = new unsigned short int [Numb];
    for(i=0; i<Numb; ++i)
    {
             fread(&array[i], sizeof(unsigned short int), 1, f1);
    }
    for(i=0; i<Numb; i++)
             cout<<array[i]<<"\n";
    position=ftell(f1);
    cout<<"Position in file: "<<position<<"\n";
    for(i=0; i<Numb; ++i)
    {
             OffsetInFile=array[i]*2;
             fseek(f1, OffsetInFile, position);
             fread(&DataCell, sizeof(unsigned short int), 1, f1);
             cout<<"DataCell="<<DataCell<<"\n";
             cout<<"Enter S: ";
             cin>>S;
             DataCell=DataCell+S;
             cout<<"DataCell="<<DataCell<<"\n";
             fseek(f1, OffsetInFile, position);
             fwrite( (void *)&DataCell, sizeof(unsigned short int), 1, f1);
    }
  fclose(f1);
    system("pause");
    return 0;
}
Добавлено через 49 минут
Прошу прощения, нашел у себя глупейшую ошибку..
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2012, 14:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа перемещающего загрузчика (C++):

Моделирование перемещающего загрузчика - C++
Здравствуйте, есть следующее задание. Первая часть: Разработать приложение по Windows 32 моделирующее работу перемещающего загрузчика....

Перемещающий конструктор и оператор перемещающего присваивания - C++
Правильно у меня написаны перемещающий конструктор и оператор присваивания? И исправьте ошибку в операторе &quot;ссылка rvalue не может быть...

Как сделать переменную глобальной для загрузчика? - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; //extern int i; int analys(){ extern int i; cout&lt;&lt;&quot;i=&quot;&lt;&lt;i&lt;&lt;endl; ...

Восстановление загрузчика - Windows 10
Доброго времени суток. Мой ноутбук очень жутко лагал и я сделал восстановление системы. Но точки восстановления не было и теперь при...

Отладка загрузчика - Assembler
Всем привет!Я пишу свой загрузчик для Windows и хотел бы иметь возможность отлаживать каждый шаг загрузки windows и просматривать...

Восстановление загрузчика - Windows XP
Здравствуйте. В общем случилась на днях неприятность - Windows перестал запускаться. По косвенным признакам предположил, что виноват...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2012, 14:33
Привет! Вот еще темы с ответами:

Восстановление загрузчика - Windows 7
нифига не въеду... стояла и стоит 7 но не загружается, кто-то пытался установить ХР, но все заканчивалось вроде-бы 3-мя разными БСОДами...

Восстановление загрузчика - Windows
Здравствуйте!!! Помогите пожалуйста разобраться с ниженаписанной проблемой. На компе стоят 2 винчестера. На обеих винчиках по 2...

Установка загрузчика - Mac OS
Доброго времени суток, кратко опишу свою проблему : у меня стоит две ОС на одном HDD &quot;Windows 10&quot; и &quot;OS X 10.11.4&quot; , и при установки...

Нету загрузчика! - Ubuntu Linux
Здраствуйте, решил установить вторую ОС Linux Mint Nadia 14 KDE. Разбил диски, заново поставил винду. Сверху ставлю Линукс, (качал с оф....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru