Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
3 / 2 / 2
Регистрация: 27.06.2020
Сообщений: 71
1

Исключение при работе с файлами

17.12.2020, 04:02. Показов 480. Ответов 2

Author24 — интернет-сервис помощи студентам
Почему бросается исключение в конце программы и как это исправить? Думаю, всё дело в деструкторе строки, но не понимаю почему.
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
#include <iostream>
#include <string>
#include <fstream>
 
using namespace std;
 
int main()
{
    string str = "some word";
    ofstream in;
    in.open("file.txt", ios::binary);
    if (in.is_open())
        in.write(reinterpret_cast<char*>(&str), sizeof(str));
    in.close();
 
    string get;
    ifstream out;
    out.open("file.txt", ios::binary);
    if (out.is_open())
        out.read(reinterpret_cast<char*>(&get), sizeof(get));
    out.close();
 
    cout << get << endl;    // выводится some word
 
    return 0;               // исключение
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2020, 04:02
Ответы с готовыми решениями:

Выкидывает исключение при работе с вектором
Всем добрый день, не подскажете почему выкидывает исключение &quot;vector subscript out of range&quot; в...

Необработанное исключение при работе с strcat
Вроде бы нечего сложного, но после запуска программы она останавливается и вылетает окно с...

Исключение при работе с указателем на двухмерный массив
Всем привет, я новенький на этом форуме и с++ изучаю тоже недолго. Возникла некая проблемка, хочу...

Ошибка при работе с файлами
Необходимо, создать текстовый файл со случайным именем в диапазоне 8 символов, латиница. Вот...

2
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
17.12.2020, 04:18 2
Цитата Сообщение от Arbuzik345 Посмотреть сообщение
Думаю, всё дело в деструкторе строки
судя по этим строкам:
Цитата Сообщение от Arbuzik345 Посмотреть сообщение
in.write(reinterpret_cast<char*>(&str), sizeof(str));
Цитата Сообщение от Arbuzik345 Посмотреть сообщение
out.read(reinterpret_cast<char*>(&get), sizeof(get));
думать ты пока ещё не научился.

даже странно: откуда ты такого бреда понахватался...

ты покамест книжки умные читай.
0
2832 / 2337 / 707
Регистрация: 29.06.2020
Сообщений: 8,658
17.12.2020, 04:21 3
Цитата Сообщение от Arbuzik345 Посмотреть сообщение
in.write(reinterpret_cast<char*>(&str), sizeof(str));
так записать string не выйдет
C++
1
in.write(str.c_str(), str.size());
обратно сложнее, нужно знать сколько прочитать данных выделить для них память
C++
1
2
char * cstr = new char[255];
in.read(c_str, сколько то там байт);
Проще писать форматированным способом.

Запись :
C++
1
in<<str<<endl;
Чтение :
C++
1
getline(out, get);
1
17.12.2020, 04:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2020, 04:21
Помогаю со студенческими работами здесь

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

Ошибка при работе с файлами
Всем привет! Подккажите, плиз, что у меня неправильно в коде: #include &lt;cstdlib&gt; #include...

Обработка исключений при работе с файлами
Кто может помочь с обработкой исключений для файла? Нужно чтобы обработчик перехватывал исключение...

Искажение данных при работе с файлами
Всем привет! Столкнулся с такой проблемой при работе с файлами: Например есть файл со следующим...

Флаги при работе с бинарными файлами
Всем привет! Ребята, не могу понять почему у меня удаляются данные из файла. Мне необходимо...

Ошибка на этапе исполнения при работе с файлами
Здравствуйте, писал прогу по работе с файлами и структурами, наткнулся на такую траблу. После...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru