您的位置:程序门 -> c/c++ -> c++ 语言



求高手指教vc中文本文件修改的好方法


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


求高手指教vc中文本文件修改的好方法[已结贴,结贴人:qing36]
发表于:2007-01-05 09:59:12 楼主
在文本文件中我存储了结构体(学生信息记录   姓名   学号   成绩)
比如文本文件中的内容为:

mawentao
99001
88
liming
99002
92
wangfang
99003
89

现在我要修改lingming的信息记录   比如   成绩   92   改为   95,请大家指教,我想说明的是我不能使用数据库,谢谢!
发表于:2007-01-05 10:03:301楼 得分:3
用字符串匹配到需要改的结构头,然后读出修改结构内容,再写到文件中,不知行不
发表于:2007-01-05 10:10:412楼 得分:1
就是文件内容查找咯   ~~
发表于:2007-01-05 10:10:463楼 得分:0
这样我想也可以,但每次都要对整个文件重写,我想知道是不是有一种方法比如用seek指针定位可以直接修改的方法,或是有其他的类库可以直接调用方法可以修改。谢谢!
发表于:2007-01-05 10:11:574楼 得分:0
请教高手能给出代码.
发表于:2007-01-05 10:13:275楼 得分:3
可以定义一个结构体,
三个成员:   姓名   学号   成绩

用   cfile   的read方法   或者是   标准库的   fread   函数,
或者是   ifsteam   的read   方法   ...

每次读取一个结构体的内容,
然后判断   姓名   是否是需要修改的记录,
如果是则进行修改,
不是则继续读取下一记录的信息。

修改完毕后,把该记录写回到文件中就可以了,
注意调整文件指针的位置   ~~
发表于:2007-01-05 10:17:486楼 得分:2
如果是不等长修改,就只能每次重写整个文件
发表于:2007-01-05 10:21:067楼 得分:0
应该是等长修改
发表于:2007-01-05 14:11:528楼 得分:11
你试试吧
#include   <iostream>
#include   <string>
#include   <fstream>
using   namespace   std;  

typedef   struct{
long   long   id;
string   name;
int   r1,r2,r3;
}data,*pdata;
   
    int       main()      
    {
    data   d;
    d.id=5050379001;
    d.name= "4k.grubby ";
    d.r1=85;
    d.r2=87;
    d.r3=83;
    data   d0,d1;
    d0.id=5050379002;
    d0.name= "john ";
    d0.r1=d0.r2=d0.r3=90;
    d1.id=5050379003;
    d1.name= "tom ";
    d1.r1=d1.r2=d1.r3=87;
    ofstream   file( "student.db ",ios::binary);//新建二进制文件  
    file.write((const   char*)(&d),sizeof(data));
    file.write((const   char*)(&d0),sizeof(data));
    file.write((const   char*)(&d1),sizeof(data));
    d1.name= "jerry ";//修改数据
    file.seekp(2*sizeof(data));//移动到第三组数据处
    file.write((const   char*)(&d1),sizeof(data));//覆盖
    file.close();
    ifstream   ifile( "student.db ",ios::binary);
    data   d2;
    ifile.seekg(sizeof(data)*2);
    ifile.read((char*)(&d2),sizeof(data));
    cout   < <   d2.name   < <d2.id < <   endl;    
    ifile.close();
    }          
发表于:2007-01-05 15:59:429楼 得分:0
javasky   谢谢   兄弟   这样可以实现   兄弟是不是打鬼专家     小弟用ud   有机会浩方切磋切磋:)
发表于:2007-01-06 15:28:0210楼 得分:0
呵呵,我也想找人一起玩,可惜我们学校网速太烂,浩方都登陆不上去!只能等回家再玩了


快速检索

最新资讯
热门点击