菜鸟求助,std::out of range
class Borrower
{
public:string borrowerid, borrowerfirstname, currentnum, borrowerlastname;
string book[5] = { "0" };
Borrower()
{
borrowerid = "abcde", borrowerfirstname = "baaaaaaas", borrowerlastname = "namenamename", currentnum = "0";
for (int i = 0; i < 5; i++)
{
book[i] = "a";
}
};
~Borrower() {};
};
istream &operator>>(istream &is, Borrower &a)
{
string z;
int m = 0, back = 5, counter=5;
is >> z;
for (int i = 0; i < 5; i++)
{
if (48 <= z[i] && z[i] <= 57)m++;
}
if (m != 5)
{
cout << "error"; exit(0);
}
for (int i = 0; i < 5; i++)
{
a.borrowerid[i] = z[i];
}
for (counter = 5; counter < z.length(); counter++)
{
if (z[counter] == ' ')
break;
}
a.borrowerfirstname = z.substr(back + 1, counter- back - 1);
back = counter;
for (counter = back+1; counter < z.length(); counter++)
{
if (z[counter] == ';')break;
}
a.borrowerlastname = z.substr(back + 1, counter - back - 1);
back = counter;
return is;
}
int main()
{
Borrower A;
cin >> A;
cout << A;
system("pause");
}