C ++帮助...更新文本文件?

时间:2011-01-21 05:01:25

标签: c++

首先,我不太擅长c ++。所以请放轻松我。 我尝试更改密码,但我只想更改文本文件中的某个密码。但是当文本文件重新写入时,只有一个新密码退出。整个文件重写了。:(

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();
    }

2 个答案:

答案 0 :(得分:1)

虽然附加很容易,但是没有一种简单的方法来修改文件中间的文本。您需要读取旧文件并重新编写它,同时检测旧条目并将其替换为新数据。

答案 1 :(得分:0)

我假设您的文件中有"username<space>password"格式,每个用户名都有一行?

这是我的建议:写一个函数可以解决这个问题:

  1. 循环读取文件中的所有条目,并将它们复制到数组中 字符串(最好是双暗阵列)
  2. 搜索中的特定用户 阵列
  3. 如果找到用户,请更改密码 在数组中
  4. 清除文件
  5. 在循环中写出整个数组 回到文件