鱼C论坛

 找回密码
 立即注册
查看: 3023|回复: 3

c++文本文件覆盖指定字符串时为什么找不到指定字符串的存在?

[复制链接]
发表于 2013-8-7 19:52:11 | 显示全部楼层 |阅读模式
1鱼币
#include<iostream>
#include <fstream>
#include"head.h"
#include<string>
using namespace std;
//-----------------------------删除学生---------------------
void delstudent()
{  system("cls");
    fstream in("test.txt",ios::in); if(!in){cout<<"asd";};
   char buffer[200];//临时缓存

    //显示文本所以内容
    while(!in.eof())
    {
        in.getline(buffer,100);//读入打开文件的每一行
        cout<<buffer<<endl;
    }
  
    string sourcefile;  
    int seeklength;  
    string seekword,replaceword;//定义要查找的学号和替换为的学号字符串变量  
    char seekchar[20],replacechar[20];  
  
    cout<<"请输入要删除的学号:"<<endl;  
    cin>>seekword;
replaceword=" ";//用空白来替换要查找的学号
    strcpy(seekchar,seekword.c_str());//将查找单词字符串转换为字符数数组  
    strcpy(replacechar,replaceword.c_str());//将替换单词字符串转换为字符数数组  
    seeklength = seekword.length();//记录要查找单词的长度  
    while(!in.eof())  
    {  
        in.getline(buffer,200);//读入打开文件的每一行  
        sourcefile.append(buffer);//将读取文件的文件内容存到字符串中  
        sourcefile.append("/r/n");//追加换行符  
    }  
    int index=0;  
    bool mark=true;  
    while(mark)  
    {  
        index = sourcefile.find(seekword,index);//定位要替换的单词,记录其开始位置  
       if(index == string::npos)//替换完毕或没发现单词的处理语句  
      {  
           cout << "没有找到该学号" << endl;  
           mark=false;  
      }  
       else  
            sourcefile.replace(index,seeklength,replaceword);//用替换字符串替换指定位置的单词  
  
    }  
    in.clear();//打开已存在的流对象,必须在每次偏移循环时清空  
    in.seekp(0,ios::beg);//定位到文件开始位置  
    in<<sourcefile;//重新写入替换后的文件内容  
    in.close();

} ;

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-8-7 19:53:52 | 显示全部楼层
明明text.txt中有那学号  就是匹配不出来  这是什么情况  现在又覆盖不了了
:mad::mad::mad::mad:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-8-7 23:00:24 | 显示全部楼层
:mad::mad::mad::mad::mad:而且也替换不了   哪里写错了么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-10-15 13:04:28 | 显示全部楼层
要使用seekp方法,将文件指针指向文件中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 21:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表