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

Запись в бинарный файл

24.05.2019, 16:24. Показов 1242. Ответов 2

Вот функция добавления данных:
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
void addConstellations()
{
    system("CLS");
    int n;
    wcout << L"Введите количество вводиммых созвездий > ";
    wcin >> n;
    wcin.ignore();
    Constellation *Constellations = new Constellation[n];
    ofstream ofile;
        ofile.open("Constellations.dat", ios::binary | ios::app);
    if (!ofile) wcout << L"\nФайл не был найден!!!\n";
    else{
        for (int i = 0; i < n; i++)
        {
            wcout << L"\nВведите информацию " << i + 1 << L" созвездия:\n";
            Constellations[i] = addConstellation(Constellations[i]);
        }
        ofile.write((char*)&Constellations, sizeof(Constellation));
        ofile.close();
        wcout << L"Информация успешно записана\n";
    }
    delete[]Constellations;
    system("PAUSE");
    system("CLS");
}
Вот функция записи созвездия:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Constellation addConstellation(Constellation Constellations)
{
    int a, b;
    wcout << L"\tНазвание русское: ";
    wcin.getline(Constellations.nameRu, 19);
    wcout << L"\tНазвание латинское: ";
    wcin.getline(Constellations.nameLa, 19);
    wcout << L"\tНазвание сокращенное: ";
    wcin.getline(Constellations.cutName, 3);
    wcout << L"\tПлощадь: ";
    wcin >> a;
    wcin.ignore();
    Constellations.area = a;
    wcout << L"\tКоличество звезд: ";
    wcin >> b;
    wcin.ignore();
    Constellations.countOfStars = b;
    return Constellations;
}
Но в итоге после того, как я введу первые три поля, остальные он будто пропускает и не дает записать.
Миниатюры
Запись в бинарный файл  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.05.2019, 16:24
Ответы с готовыми решениями:

Запись в бинарный файл
Скажите пожалуйста, правильно ли работает моя программа? (Имеется ввиду запись в бинарный файл) ...

Запись в бинарный файл
Всем привет. Подскажите пожалста как через fstream добавить запись в бинарный файл ? нужно...

Запись в бинарный файл
Здравствуйте. Прошу помочь разобраться с проблемой. Необходимо записать в двоичный файл...

Запись в бинарный файл
По заданию требуется организовать ввод данных типа структуры в бинарных файл , в соответствии с...

2
6571 / 4556 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
24.05.2019, 16:54 2
Лучший ответ Сообщение было отмечено Мария Шафирова как решение

Решение

Цитата Сообщение от Мария Шафирова Посмотреть сообщение
wcout << L"\tНазвание сокращенное: ";
* * wcin.getline(Constellations.cutName, 3);
Слишком маленький размер буфера, для "And" надо 4, т.е. учесть завершающий ноль.
Подозреваю, для остальных полей то же самое - надо добавить 1 к размеру
1
0 / 0 / 1
Регистрация: 22.05.2019
Сообщений: 22
24.05.2019, 17:02  [ТС] 3
Спасибо. Помогло.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2019, 17:02
Помогаю со студенческими работами здесь

Запись в бинарный файл
Делаю курсовую работу. Шаблонный класс, выполняющий функции двоичного файла, хранящего в себе...

Запись в бинарный файл
Всем привет. Столкнулся с следующей проблемой при написании курсача,а именно с записью в бинарный в...

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

Запись в бинарный файл
Подскажите как записать данные из StringGrid в бинарный файл и компоновка допустим из 2 StringGrid ...


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

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

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