fstream outfileadf("mnk43play.adf",ios::out|ios::in);
char buffer[80];
int aa=1;
char buf[80]="object build {"; memset(buffer ,0 ,80); if (!outfileadf.fail())
{
while(outfileadf)
{
outfileadf.getline(buffer,sizeof(buffer));
if (!strcmp(buffer,buf))
{
int pos=outfileadf.tellg(); outfileadf.seekg(0,ios::beg);
outfileadf.seekg(pos);
  char sss[]="83117428";
outfileadf<<sss<<endl;
}
memset(buffer ,0 ,80);

}
outfileadf.close();
}
代码是这个样子的,现在问题是会不停的往文档里面写。感觉像是复制了整个文档的内容。
if (!strcmp(buffer,buf)){}
会一直进入。
去掉
outfileadf<<sss<<endl;
这句话后正常。但是就没法写了。这断代码应该怎么写啊。。谢谢大家了。

解决方案 »

  1.   

    ~~~outfileadf<<sss<<endl;
     加一个break; ok了~~~
      

  2.   

    恭喜楼主。CSDN强大吧,贴子出来,自己就发现问题了。CSDN可以触发灵感呢。
      

  3.   

    lz 你的程序是什么逻辑
     if (!strcmp(buffer,buf))
    这个作比较有什么用?
    他们两个一直不相等   一个是空  另外一个有字符!
      

  4.   

    楼上完全没看啊。
    outfileadf.getline(buffer,sizeof(buffer));
    char buf[80]="object build {";
    ^_^  惭愧 惭愧 问了老大才搞定的。