2011-01-21 3 views
0

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

user.txt

admin openmyacc 
guest imguest12 


void Passchange() 
{ 
    string tempass; 
    system("cls"); 
    cout<<"enter current password: "; 
    cin>>tempass; 
    if(tempass==inpass) 
    { 
     cout<<"utility to change password stored in file\n"; 
     cout<<"CHANGE PASS TO: "; 
     cin>>user; 
     ofstream Passfile("user.txt", ios::out); 
     Passfile<<user; 
     Passfile.close(); 
     cout<<"password successfully changed"; 
     getch(); 
     main(); 
    } 

ответ

1

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

0

я предполагаю, что у вас есть формат "username<space>password" в файл с одной строкой для каждого пользователя?

Здесь это мое предложение: Напишите функцию, которая будет работать linke t его:

  1. Читать все записи в файле в цикле и скопировать их в массив строк (желательно два-тусклый массив)
  2. Поиск конкретного пользователя в массиве
  3. Если пользователь найдено изменить пароль в массиве
  4. Clear файл
  5. Выпишите весь массив в цикле обратно в файл
Смежные вопросы