Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
runetka
0 / 0 / 0
Регистрация: 22.02.2017
Сообщений: 9
1

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

27.05.2017, 13:09. Просмотров 504. Ответов 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
Миниатюры
Чтение и запись в бинарный файл   Чтение и запись в бинарный файл  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2017, 13:09
Ответы с готовыми решениями:

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

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

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

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

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

1
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,046
27.05.2017, 16:52 2
Цитата Сообщение от runetka Посмотреть сообщение
C++
1
cin.ignore();
Это нужно с умом применять, а не где попало.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2017, 16:52

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

Запись в бинарный файл и чтение из него массива структур
Ребята, выручайте. Огромная проблема с записью и с чтением структуры из...

Std::ofstream запись и чтение переменных в бинарный файл
int a = 1; std::ofstream file(&quot;test.settings&quot;, std::ios::in | std::ios::out...


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

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

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