私はこのifStreamを持っていて、それはファイルから問題なく読んでいます。私は読んでいるアイテムのタイプをチェックするために1行を読みました。そして、ストリームをもう少し読む別のクラスに渡した後、このクラスに到達するとこの例外がスローされます。場所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)と呼んでいますか? –
はい。この関数に渡す前に、1行を読み込むために使用されていました。 – Mindstormer