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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
reddomar
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 1
#1

Access violation reading location - C++

08.06.2016, 13:04. Просмотров 238. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста!
Создаю программу, которая ведет учет данных. В бинарный dat-файл записываются объекты класса (Account) - логин(string), пароль(string) и bool-переменная. Если файл не создан, то создает его и добавляет учетную запись админа (вводит данные по умолчанию). Считываю данные из файла в вектор (функция ниже). Проблема в том, что если файла нету и создается файл по умолчанию, то в дальнейшем программа работает (можно войти в систему), но если файл уже был создан, а в нем уже есть запись (которую делали по умолчанию), то вылетает ошибка. Если смотреть дебагером, то вылетает на return'е этой функции.

Также в поле объекта записывается статическя переменная count, которая ведет подсчет записей. В конструкторе класса к ней прибавляется единица. Ввел потому, что бинарный файл лишний раз считывал данные.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bool readAccountData(vector<Account>& v)
{
    fstream fin;
    fin.open("Accounts.dat", ios::binary | ios::in | ios::beg);
    if (fin.is_open())
    {
        Account Accobj;     
        fin.read(reinterpret_cast <char*> (&Accobj), sizeof(Accobj));
        v.push_back(Accobj);
        Accobj.getCount()--;
        for (int i = 0; i < Accobj.getCount()-1; i++)
        {
            fin.read(reinterpret_cast <char*> (&Accobj), sizeof(Accobj));
            v.push_back(Accobj);
        }
        fin.close();
        return true;
    }
    else
        return false;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2016, 13:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Access violation reading location (C++):

Access violation reading location - C++
Уважаемые знатоки, подскажите пожалуйста в чем проблема или хотя бы типовые причины возникновения, данного исключения (см. заголовок). На...

access violation reading location - C++
access violation reading location такая проблема если вести информацию про двух и больше студентов помогите пожалуйста очень срочно надо ...

ошибка Access violation reading location 0x00000066 - C++
Ошибка : Unhandled exception at 0x100e14cf (msvcr100d.dll) in 3.4.exe: 0xC0000005: Access violation reading location 0x00000066. ...

Массивы указателей и ошибка Access violation reading location - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; class Number { public: int x; int calc(Number* start,...

Помогите с ошибкой Access violation reading location 0x1ed1d9f8. - C++
Не могу разобраться с VS.... У меня был хороший, проверенный проект, в котором все хорошо работало и небыло проблем. Тут я стал добавлять в...

Exception thrown at 0x77D75BCA (ntdll.dll): 0xC0000005: Access violation reading location 0x0000 - C++
Есть задача Есть решение Основное приложение: #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5310 / 4630 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
08.06.2016, 14:17 #2
Убери ios::beg для начала.

Добавлено через 1 минуту
И как ты наперёд определяешь сколько считывать из файла? Что за getCount()?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2016, 14:17
Привет! Вот еще темы с ответами:

Ошибка: Unhandled exception at 0x772115de in TimeShift.exe: 0xC0000005: Access violation reading location 0x00041000. - C++
всем привет! При использовании двумерного массива постоянно появляется ошибка :Unhandled exception at 0x772115de in TimeShift.exe:...

Как можно найти итерацию, на которой происходит "access violation reading location"? - C++
Ситуация такая что имеется функция которая вызывается в цикле около 1 млн. раз, в какой-то из итераций выскакивает исключение &quot;access...

Access violation writing location - C++
Добрый день! на строке ptr = ptr; бросает unhandeled exeption: Access violation writing location, не пойму почему, может уже туплю....

Access violation writing location - C++
#include &lt;iostream&gt; using namespace std; template &lt; typename t &gt; void QuickSort( t array, int left,int right) { int i = left; ...


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

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

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