0

Допустим у нас есть файл содержащий n столбцов со строками вида login password. Собственно вопрос состоит в том, как перезаписать конкретный password на n-ом столбце. Прочитав файл таким образом я теперь могу обратиться к нужному мне password.

   baseusers.open(path2);

while (!baseusers.eof()) { baseusers >> log[kolp] >> passw[kolp]; kolp++; } baseusers.close();

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

P.S. Я не особо шарю в плюсах, так что не душите пожалуйста :)

Harry
  • 221,325
Clonius
  • 11

1 Answers1

3

Перезаписывать в новый файл, потом переименовывать. Или считывать все в память, переделывать, как надо, перезаписывать файл...

Потому что размеры записей не фиксированы.

И еще — никогда так не делайте: while (!baseusers.eof()) — будет лишняя запись.

while(baseusers >> log[kolp] >> passw[kolp]) kolp++;
Harry
  • 221,325
  • Понял, спасибо) Но вот еще: через что мы перезаписываем файл? Через fstream::out | fstream::trunc ? – Clonius Dec 15 '21 at 07:38
  • Если наново — я бы закрыл-открыл как новый, так проще всего :) — а то вдруг новая запись короче старой? останется мусор в конце... – Harry Dec 15 '21 at 08:10
  • Спасибо большое! Все заработало как надо) – Clonius Dec 15 '21 at 08:27
  • Ну, тогда принять ответ — птичка слева от него. – Harry Dec 15 '21 at 09:14