int removeContact(Contact *newPtr, int runningTotal)
{
//define variables
string remove;
int next;
//prompt user for name they wish to remove
cout << "Enter the name you would like to delete (Last name first): ";
cin.ignore();
getline(cin, remove);
for (int t=0; t<=runningTotal; t++)
{
if (remove.compare(newPtr[t].name) == 0)
{
//calls function moveArrayElements function
moveArrayElements(newPtr, runningTotal, t);
//decrement runningTotal
runningTotal--;
//prompt user contact was found
cout << "Contact was found and deleted!";
next=1;
}
}
if(next!=1)
{
cout<< "ERROR: Contact was not found!";
}
return runningTotal;
}
Эта функция является частью более крупной программы на С ++, которая предназначена для управления контактной информацией людей.Предполагается, что эта функция удаляет контакт.
У меня проблема с оператором if (remove.compare(newPtr[t].name) == 0)
.Когда моя программа попадает в эту часть кода, она падает без каких-либо ошибок.Я попытался сравнить обе строки с оператором ==
, но это все равно приводит к сбою моей программы ...
Кроме того, что делает это настолько странным, что этот код работает отлично, когда функциявызывается, когда моя программа работает с контактом, который я пытаюсь удалить, не хранится в текстовом файле.
Однако, когда я закрываю свою программу и загружаю свои контактные данные из текстового файла, моя программа аварийно завершает работу ... Я знаю, что моя программа считывает файл в правильный массив строк, потому что у меня есть печатьфункция, поэтому я знаю, что все мои контакты переносятся в правильные структурные массивы ...
Есть идеи, как я могу это исправить?Любая помощь будет оценена!Спасибо
ОБНОВЛЕНИЕ: Я принял предложения в комментариях и изменил цикл for на
t<runningTotal;
Однако, когда я делаю это, моя программа не падает, но она не сравнивает строки...