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

Задание по файлам - C++

Восстановить пароль Регистрация
 
Heidel
 Аватар для Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
10.11.2013, 19:15     Задание по файлам #1
Добрый вечер. Помогите, пожалуйста, с заданием по чтению и записи в файл. Само задание на прикрепленной картинке.

Вот моя структура ScanInfo.h
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
 
struct ScanInfo {
    std::string model;
    int price;
    double x_size;
    double y_size;
    int optr;
    int grey;
};
Вот сама программа
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include "stdafx.h"
#include "ScanInfo.h"
 
ScanInfo CreateScan ();
std::string SetModelName();
int SetOpticalResolution();
 
int _tmain(int argc, _TCHAR* argv[])
{
    using namespace std;
    setlocale (LC_ALL, "Russian");
    
    int n;
    cout << "Введите n = ";
    cin >> n;
 
    ScanInfo *scanList = new ScanInfo[n];
    for (int i = 0; i < n; ++i)
    {
        scanList[i] = CreateScan(); 
    }
 
    FILE *file;
    if ((file = fopen("d:\\C++\\Training\\Files\\output.out", "w+b")) == 0)
    {
        cout << "Ошибка cоздания файла"; return 1;
    }
 
 
    fclose(file);
    delete [] scanList;
    
    system("PAUSE");
    return 0;
}
 
 
ScanInfo CreateScan () {
    srand((unsigned)time(NULL));
 
    ScanInfo *scanInfo = new ScanInfo;
    scanInfo->model = SetModelName();
    scanInfo->price = rand()%3000 + 1000;
    scanInfo->x_size = rand()%50 + 200;
    scanInfo->y_size = rand()%50 + 200;
    scanInfo->optr = SetOpticalResolution();
    scanInfo->grey = rand()%50 + 200;
 
    return *scanInfo;
}
 
std::string SetModelName() {
    srand((unsigned)time(NULL));
    int n = rand()%5 + 1;
    std::string modelName;
    switch(n)
    {
    case 1:
        modelName = "Canon"; break; 
    case 2: 
        modelName = "Epson"; break;
    case 3: 
        modelName = "Nikon"; break;
    case 4: 
        modelName = "Panasonic"; break;
    case 5: 
        modelName = "Xerox"; break;
    default:
        modelName = "Untitled"; break;
    }
    return modelName;
}
 
int SetOpticalResolution() {
    srand((unsigned)time(NULL));
    int n = rand()%5 + 1;
    int opticalResolution;
    switch(n)
    {
    case 1:
        opticalResolution = 1200; break; 
    case 2: 
        opticalResolution = 1800; break;
    case 3: 
        opticalResolution = 2400; break;
    case 4: 
        opticalResolution = 3600; break;
    case 5: 
        opticalResolution = 4800; break;
    default:
        opticalResolution = 0; break;
    }
    return opticalResolution;
}
Не могу разобраться, как мне записать в первые два байта int и увеличивать его на +1 при каждой записи в файл и как записать в файл записи о сканерах, чтобы они шли друг за другом без пропусков?
Миниатюры
Задание по файлам  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2013, 19:15     Задание по файлам
Посмотрите здесь:

Задача по файлам C++
C++ Вопросы по файлам
Задание на массив и задание на матрицу. C++
Поиск по файлам и директориям C++
По текстовым файлам и строкам C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Heidel
 Аватар для Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
11.11.2013, 09:47  [ТС]     Задание по файлам #2
Вопрос по-прежнему актуален
fridi
-8 / 40 / 1
Регистрация: 21.09.2009
Сообщений: 145
11.11.2013, 09:55     Задание по файлам #3
это про смешения:
readfile(buff, sizeof(ScanInfo));// читаешь структуру из файла
writefile(buff,sizeof(ScanInfo)); //пишешь структуру в файл
ну и соотественно
readfile(buff + sizeof(ScanInfo), sizeof(ScanInfo)); //Вторая структура
writefile(buff + sizeof(ScanInfo),sizeof(ScanInfo)); //Вторая структура
C++ (Qt)
1
2
3
4
5
ScanInfo Temp;
while(readfile((char *)Temp, sizeof(ScanInfo)))
{
        ShowScanInfo(&Temp);
}
Heidel
 Аватар для Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
11.11.2013, 15:59  [ТС]     Задание по файлам #4
fridi, а как записать int в первый два байта файла и увеличивать его на единицу каждый раз при записи в файл?
Yandex
Объявления
11.11.2013, 15:59     Задание по файлам
Ответ Создать тему
Опции темы

Текущее время: 05:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru