修改文件指定位置数据

          修改文件指定位置数据

笔者遇到这样一道题:设计一个银行类,要求可以实现转账、取款、存款等功能,那么必定要实现修改文件指定位置的数据。

笔者左思右想,想到以下思路:产生一个新文件,把原文件的数据修改后转存,然后新文件覆盖原文件,并且重命名;

例如:欲将上述数据修改为以下数据,即将王麻子后的88改为89.

用到以下函数

system("ren D:\\old.dat new.dat");//将old.dat命名为new.dat

system("del D:\\old.dat");//删除old.dat文件

由于代码比较简单,所以直接给出代码:

 
  
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main(){
    ofstream os;
    os.open("D:\\old.dat",ios::out|ios::trunc);
    os<<"张三"<<"  "<<"88"<<"  "<<"89"<<endl;
    os<<"李四"<<"  "<<"88"<<"  "<<"89"<<endl;
    os<<"王麻子"<<"  "<<"88"<<"  "<<"89"<<endl;
    os.close();
    ifstream is;
    is.open("D:\\old.dat",ios::in);
    os.open("D:\\new.dat",ios::out);
    string str;
    int flag , _flag=0;
    while(!is.eof()){
        is>>str;
        if(str=="王麻子"){
            flag=0;
        }
        if(flag == 1){
            str="89";
        }
        os<<str<<"  ";
        flag++;
        _flag++;
        if(_flag==3){
            os<<endl;
            _flag=0;
        }
    }
    is.close();
    os.close();
    cout<<"赋值完毕!正在删除..."<<endl;
    //删除改名
    system("del D:\\old.dat");
    cout<<"删除完毕!正在重命名..."<<endl;
    system("ren D:\\new.dat old.dat");
    cout<<"重命名完毕!"<<endl;
    cout<<"修改完毕!"<<endl;
    return 0;
}

本文仅仅代表笔者一些小想法。

笔者不精,文中若有不妥之处,欢迎前来指正!

转载于:https://www.cnblogs.com/spaceship/p/7160967.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值