Пожалуй с этого момента пора определиться что именно сортируется. Имя, маил, телефонный номер или что нить ещё?
Напишите пожалуйста маленький фрагмент кода, я наверно не понимаю синтаксис. А то отдыхать не получится))
Тут как раз понятно, сортировка по имени естественно)
А, да, и при сортировке еще надо сравнивать всю строку-ключ, а не первый символ.
std::string это поддерживает.
Myphone[i].FIO < Myphone[i + 1].FIO
Ну и непонятно зачем префикс my
, и почему список телефонов называется “телефон” (phone), а не “телефоны” (phones).
С сортировкой вроде разобрался, вроде даже работает
void Sort(Phone*Myphone , int size)
{
string temp;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size - 1; j++)
{
if (Myphone[j].FIO > Myphone[j + 1].FIO)
{
temp = Myphone[j].FIO;
Myphone[j].FIO = Myphone[j + 1].FIO;
Myphone[j + 1].FIO = temp;
}
}
}
}
С грамматикой тоже разберусь, только вот не могу понять того, как реализовать то, о чем до этого говорили
И здесь похоже перестановка
не по имени
Когда закрываю консоль, и запускаю снова, старые данные не видны
Так сразу-же говорили бульбочкой нужно
Так переставлять и надо весь элемент.
Зачем присваивать кому-то чужое имя?
Что есть старые данные?
Исходный текстовый файл?
он самый
Если эта проблема появилась после изменений, то надо показать текущий код )
Если передавать size=100, то все видно. Но тогда возвращается старая проблема)
Во Write
из первого поста (который скорее Append
или Add
) не нужно передавать ни массив (не используется), ни size
(он там странно используется, там просто бесконечный цикл до ввода 0
).
В Read
тоже не нужно size
передавать, он его вернуть должен.
Разберетесь с выводом, посмотрите, может так лучше будет организовать процедуры
Delete, Edit
int Delete(Phone* Myphone, int size, int index)
{
for (int i = index; i < size - 1; i++)
{
Myphone[i].FIO = Myphone[i + 1].FIO;
Myphone[i].number = Myphone[i + 1].number;
Myphone[i].email = Myphone[i + 1].email;
}
cout << "Contact was succesfully deleted\n";
return size-1;
}
//оставил 3 параметра вызова, но по факту надо только 1,3
void Edit(Phone* Myphone, int size, int index)
{
string res;
string new_name;
string new_number;
string new_email;
cout << "Enter new name\n";
getline(cin, new_name);
cout << "Enter new number\n";
cin >> new_number;
cout << "Enter new E-mail\n";
cin >> new_email;
Myphone[index].FIO = new_name;
Myphone[index].number = new_number;
Myphone[index].email = new_email;
cout << "Contact was succesfully edited\n";
}