我已搜索過類似的錯誤,但找不到與我的代碼相關的答案。 我有一個登錄系統,其中名稱和密碼從文件讀入矢量。 然後我通過向量和匹配用戶名和密碼進行計數,並且我可以使用矢量中保存的任何名稱/密碼組合登錄到我的程序中,但是,如果要輸入不在矢量或文件中的東西對於這個問題它會拋出一個運行時錯誤,該向量超出範圍。 請任何人都可以幫助我如何捕捉矢量以外的用戶輸入。我希望這是有道理的。提前致謝,讓我們看看這次我能得到多少票。大聲笑。登錄時向量下標超出範圍
對不起,我沒有發佈任何代碼,我在我的桌面上發佈了問題,代碼在我的筆記本電腦上。謝謝。
void loginScreen()
{
vector <string> MyVec;
string unTemp;
string pwTemp;
bool correct = true;
cout << "Enter Your Username: ";
cin >> unTemp; cout << endl;
cout << "Enter Your Password: ";
cin >> pwTemp;
fstream admin("admin.txt", ios::in || ios::out || ios::app);
while (admin >> userName >> password)
{
MyVec.push_back(userName + " " + password);
}
admin.close();
for (vector<string>::const_iterator i = MyVec.begin(); i != MyVec.end(); ++i)
{
for (int j = 0; j <= MyVec.size(); ++j)
do{
if (MyVec[j] == unTemp + " " + pwTemp)
{
cout << MyVec.size() << endl;
cout << MyVec[j] << endl;
correct;
mainMenu();
}
else
{
!correct;
}
} while (!correct);
}
}
您將需要顯示一些代碼和錯誤消息才能獲得幫助。請閱讀[MCVE](http://stackoverflow.com/help/mcve) – user463035818
沒有代碼?讓我去拿我的水晶球... – Borgleader
我的調試器已經被修復了。你可以使用一個調試器,單步執行代碼,*觀察變量?通過這種方式,下標值和向量中的項目數量一樣是已知的。 –