Поиск конкретных строк C ++ вкладка разграничена
-
12-12-2019 - |
Вопрос
Сумма счетов типа
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).Тогда я бы использовал структуру данных для необходимых операций (таких как поиск или редактирование).Наконец, я бы написал структуру данных обратно в файл, если есть какие-либо модификации.