Вопрос

Сумма счетов типа

15 Проверка 52.42

23 сбережения 51.51

11 Проверка 12.21

- это моя вкладка devmited файл

Я хотел бы иметь возможность искать строки по номеру аккаунта.Скажите, если я положу в 23, я хочу получить этот конкретный ряд.Как удостоверился ли удостоверение личности?

Также больше продвижения, если я хотел изменить определенное значение, скажите сумму 51.51 в счет 23. Как я могу получить это значение и заменить его новым значением?

До сих пор я просто читаю в ряд подряд

строка строки; ifstream ("account.txt");

 if (is.is_open())
 {
while (std::getline(is, line))  // read one line at a time
{
    string value;
    string parseline;
    std::istringstream iss(line);

    getline(line, parseline);
    cout << parseline << endl;  // do something with the value
    while (iss >> value)    // read one value at at time from the line
    {
        //cout << line << "   ";    // do something with the value
    }
}
is.close();
 }
 else
     cout << "File cant be opened" << endl;

return 0;
.

Это было полезно?

Решение

Учитывая, что каждая строка имеет переменную длину, нет способа индексирования в определенную строку без сначала распределить весь файл.

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

Вы можете использовать «STRTOK», чтобы разделить ввод вверх на строки, а затем STRTOK снова разделить каждую строку на поля.

Другие советы

Если бы я сделал это, я сначала написал несколько функций, которые разбирают весь файл и храните данные в соответствующей структуре данных (например, массив или STD :: Map).Тогда я бы использовал структуру данных для необходимых операций (таких как поиск или редактирование).Наконец, я бы написал структуру данных обратно в файл, если есть какие-либо модификации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top