0 / 0 / 0
Регистрация: 22.02.2017
Сообщений: 9
1

Чтение и запись в бинарный файл

27.05.2017, 13:09. Показов 8548. Ответов 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
int enterCar(){
    int n = 0;
    ifstream f;
    f.open("Car.dat", ios::binary);
        f.seekg(0, ios::end);
        n = f.tellg();
        n = n / sizeof(Car);
        f.seekg(0, ios::beg);
        n = n + 1;
    ofstream of;
    of.open("Car.dat", ios::binary| ios::app);
    Car car;
    cout << endl;
    cin.ignore();
    cout << "Марка:                   ";
    cin.ignore();
    cin.getline(car.brand,50);
    cout << "Цвет:                    ";
    cin.ignore();
    cin.getline(car.color,50);
    cout << "Номер:                   ";
    cin.ignore();
    cin.getline(car.number,50);
    car.INnum = n;
    cout << "Идентификационный номер: " << n << endl;
 
    of.write((char*)&car, sizeof(Car));
    of.close();
    return n;
}
Чтение из файла:

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
void viewCar(){
    Car car;
    int g;
    ifstream f;
    f.open("Car.dat", ios::binary| ios::in );
    if (!f)
        cout << "Ошибка!";
    else{
        f.seekg(0, ios::end);
        int n = f.tellg();
        g = n / sizeof (Car);
        f.seekg(0, ios::beg);
        Car *car = new Car [g];
 
    f.read((char*)(car), g*sizeof(Car));
        f.close();
   for ( int i = 0; i < g; i++)
    {
        cout << "Идентификационный номер: " << car [i].INnum << endl;
        cout << "Марка                   : " << car[i].brand  << endl;
        cout << "Цвет                   : " << car[i].color  << endl;
        cout << "Номер                  : " << car[i].number << endl;
    }
 
    }
}
И еще интересует, почему при создании нового бинарника переменная n для первой машины получает ИН 27531842, а уже для остальных идёт по порядку 2,3,4 ... и т.д.
Миниатюры
Чтение и запись в бинарный файл   Чтение и запись в бинарный файл  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2017, 13:09
Ответы с готовыми решениями:

Запись/чтение бинарный файл
Подскажите, пожалуйста, где можно посмотреть оптимальный пример о записи и чтении списка объектов...

Чтение и запись в бинарный файл
Ребят nомогите мне nожалуйста. Я хочу nрочитать бинарный файл , в котором заnисаны данные в виде...

Чтение/Запись в текстовый и бинарный файл.
Подскажите в чем ошибка. Функции чтения и записи в бинарный и текстовый файл толком не работают( ...

Запись в бинарный файл и чтение из него
Нужно записать в бинарный файл блоки, каждый по 512 байт. Структура блока: Слово Число. На слово...

1
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
27.05.2017, 16:52 2
Цитата Сообщение от runetka Посмотреть сообщение
C++
1
cin.ignore();
Это нужно с умом применять, а не где попало.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2017, 16:52
Помогаю со студенческими работами здесь

Запись/Чтение структуры в файл (бинарный)
Всем привет! у меня такая задачка, очень простая. Нужно записать структуру в файл, а потом хочу...

Запись и чтение вектора структур в бинарный файл
Есть заполненный вектор структур. Структура вида: struct struc { string a; int x; map&lt;int,...

Запись/чтение массива структур в бинарный файл
#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; struct test { int x; ...

C++ Запись и чтение(вывод на экран) в бинарный файл
Помогите переделать, пожалуйста, чтоб была запись именно в бинарный файл, то есть используя fread и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru