GhettoBurger996 Ответов: 1

После того, как информация была записана в txt-файл, как бы вы отредактировали эту информацию через командную строку в C++?


Отказ от ответственности это часть моего домашнего задания для университета. Однако я пытался решить эту проблему в течение последних 9 дней и, похоже, ничего не добился.

Системная функция как указано ниже, персонал может 1) Добавить станцию (нет ограничений на то, сколько может быть добавлено, информация о станции состоит из 4 строк и 1 int, которые должны быть добавлены) 2) просмотреть станции (просто прочитайте txt-файл станции выше) 3) редактировать станции

Проблема, с которой я сейчас сталкиваюсь, - это редактирование станций. Я хотел бы сделать это через командную строку, но не знаю, как именно это будет сделано.

void Staff::ManageSelangorRailway()
{
    int select;
    cout << "Please select one of the following options: \n\n";
    cout << "1) Add Station 2) Edit/Delete Station 3) View Station 4) Return";
    cin >> select;

    switch (select)
    {
    case 1:
    {
            vector <StationInfo> getStationInfo;
        ofstream out("SelangorStations.txt", ofstream::out | ofstream::app);
        char accept = 'y';
        char reject = 'n';
        while (tolower(accept) == 'y')
        {
            StationInfo stationInfo = GetStationInfo();
            getStationInfo.push_back(stationInfo);
            cout << endl;
            out << stationInfo;

            cout << "Would you like to add another station ? (y/n): ";

            if (cin >> accept)
            {
                out.close();
                Staff::Staff();
            }
            else if (cin >> reject)
            {
                Staff();
            }
        }
        break;
    }
    case 2:
    {

    }
    case 3:
    {
        ifstream file("SelangorStations.txt");
        string content;

        while (file >> content) 
        {
            cout << content << ' ';
        }
    }
    default:
        break;
    }
}



Никаких движений му или щелчков. Поскольку это потребовало бы внешних знаний о виджетах и библиотеках, я попытался присвоить каждой станции, добавленной в вектор, уникальный идентификатор (до сих пор он не работал). Я был бы признателен, если бы вы или кто-нибудь другой действительно могли написать код, чтобы иметь возможность читать и заменять станции, на данный момент я не возражаю отказаться от идеи уникального идентификатора для каждой станции.

В этот момент кто-нибудь будет возражать против написания кода. Я выгорел и ничего не хотел бы больше, чем понять это, фактически посмотрев на код.

Что я уже пробовал:

Я попробовал следовать нескольким учебникам с YouTube и нашел похожий вопрос переполнения стека, который касался этой темы. Однако, похоже, что бы я ни делал, это просто не работает. Я удалил все свои неудачные попытки (код, который не работал). Если меня попросят, я поделюсь ссылкой, которую использовал в качестве точки отсчета.

1 Ответов

Рейтинг:
0

Richard MacCutchan

Вам нужно прочитать данные в какой - то список или вектор строк, возможно. Затем вы можете попросить пользователя выбрать элемент, который он хочет отредактировать. Найдите нужный элемент в списке и распечатайте его детали. Затем попросите пользователя ввести обновления и заменить старый элемент в списке на обновленные данные. В конце программы запишите обновленный список в новый текстовый файл.