Почему я нажимаю строковый индекс вне диапазона?
Я получаю строковый индекс из ошибки диапазона, запустив этот код.
int main() { //Read file string filename = ""; std::cout << "Welcome to the Bank system!\n"; std::cout << "Please input the file name of the data file: "; std::cin >> filename; ifstream myfile(filename); int i = 0; // number of char int j = 0; // number of column int k = 0; // number of ac char c = 'a'; bool skip = false; string temp = ""; string pwhold; string amounthold; string acnohold; string telnohold; string namehold; if (myfile.is_open()) { while (getline(myfile, temp)) { pwhold = ""; amounthold = ""; acnohold = ""; telnohold = ""; namehold = ""; j = 0; skip = false; i = 0; while (!skip) { char c = temp[i]; if (c == '\n') { skip = true; break; } else if (c == '\t') { j++; } else { switch (j) { case 0: acnohold = acnohold + c; break; case 1: namehold = namehold + c; break; case 2: telnohold = telnohold + c; break; case 3: pwhold = pwhold + c; break; case 4: amounthold = amounthold + c; break; default: break; } } i++; } system("pause"); temp = " "; db1[k].pw = stoul(pwhold, nullptr, 0); db1[k].deposit = stod(amounthold, nullptr); db1[k].telno = stoul(telnohold, nullptr, 0); db1[k].acno = stoul(acnohold, nullptr, 0); db1[k].name = namehold; k++; } }
Используемый текстовый файл:
567123456 Chan Tai Man 90112233 3942681528 1234.56 567112233 Wong Mei Lai 60123456 2670544664 10000.12 567555555 Lau Tak Wah 69876543 3418631757 888888.88 567987654 Wong Siu Ming 60123456 3752537240 1300000.12
Почему возникает проблема и как ее устранить?
Что я уже пробовал:
Я пробовал гуглить ответ, но все же...