Итак, у меня есть этот ifStream, и он отлично читается из файла. Я прочитал одну строку, чтобы проверить тип элемента, который я читаю. Затем После того, как я прочитал, я передаю поток другому классу, который читает еще немного, но когда он попадает в этот класс, он выдает это исключение. Место обнаружения нарушения доступа 0x00000014. Вот код, где показана эта ошибка.Доступ к данным о нарушении прав доступа 0x00000014. Использование потоков
void Author::readData(ifstream & stream1)
{
string line = "";
getline(stream1, name); //The error happens here
if (stream1.fail() && stream1.eof())
{
throw Error(-1);
}
else if (stream1.fail() && !(stream1.eof()))
{
throw Error(0);
}
getline(stream1, address);
if (stream1.fail() && stream1.eof())
{
throw Error(-1);
}
else if (stream1.fail() && !(stream1.eof()))
{
throw Error(0);
}
}
void Book::readData(ifstream & stream1)
{
(*theAuthor).readData(stream1); //This is where the function is called. Let me check to see if It is even initialized here.
if (stream1.fail() && stream1.eof())
{
throw Error(-1);
}
else if (stream1.fail() && !(stream1.eof()))
{
throw Error(0);
}
getline(stream1, title);
if (stream1.fail() && stream1.eof())
{
throw Error(-1);
}
else if (stream1.fail() && !(stream1.eof()))
{
throw Error(0);
}
Я проводил исследования на многих различных веб-сайтов, но я не могу показаться, чтобы найти какой-либо, что объясняет, почему ifstream бросает это исключение. Пожалуйста помоги.
Редактировать: Добавлен еще один код в надежде, он может помочь.
Был ли файл открыт успешно? – Rakete1111
А что такое 'имя'? Что такое 'адрес'? Вы вызываете ['std :: getline'] (http://en.cppreference.com/w/cpp/string/basic_string/getline)? –
Да. Он использовался для чтения одной строки из нее, прежде чем перейти к этой функции. – Mindstormer