CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

在C语言中删除字符内容的问题

楼主dongfeng2008(郑军)2006-05-03 20:45:44 在 C/C++ / 新手乐园 提问

请问哪位知道如何删除C语言程序创建的文件里面的内容,如:我用C   创了一文件为TEST.TXT,里面内容为:THIS   IS   A   C   PROGRAM   ,WELLCOME!,现在我想删除   C   PROGRAM   这两个字符,该如何做呀?  
  请各位赐教,谢谢!! 问题点数:100、回复次数:13Top

1 楼du51(郁郁思扬)回复于 2006-05-03 21:25:30 得分 0

读到数组里,删除后再写进去..Top

2 楼yuanchuang(元创)回复于 2006-05-03 21:34:53 得分 0

读到数组里,删除后再写进去..  
  C里面没有现成的函数。  
   
  ps:du51(郁郁思扬)   (   )   信誉:100   ,又升星了?怎么没有放分庆祝啊?Top

3 楼sankt(宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒.)回复于 2006-05-03 21:35:19 得分 0

可以这样做:  
  首先读入文件到一个string   对象里面,然后删除不要的部分,然后写回文件即可  
  Top

4 楼ENOUGH_XU(苦点,累点->没关系)回复于 2006-05-03 22:00:35 得分 0

学习Top

5 楼flamingheart(火焰心)回复于 2006-05-03 22:05:15 得分 0

对,就像楼上说的那么做  
  Top

6 楼eminwoo(天邪鬼)回复于 2006-05-03 22:13:14 得分 0

#include   <fstream.h>  
  #include   <string.h>  
  #include   <iostream.h>  
  void   main()  
  {  
  //先写一个文件  
  ofstream   o("text.txt");  
  char   str[]="THIS   IS   A   C   PROGRAM   ,WELLCOME!";  
  o.write(str,strlen(str));  
  o.close();  
  //把字符从文件里读到newstr  
  ifstream   i("text.txt");  
  char   ch;  
  int   j=0;  
  char   newstr[255];  
  while(!i.eof())  
  {  
  i.read(&ch,1);  
  newstr[j]=ch;  
  j++;  
  }  
  newstr[j-1]='\0';  
  i.close();  
  //将newstr的"C   PROGRAM"清空  
  char   *   pch;  
  pch   =   strstr   (newstr,"C   PROGRAM");  
  strncpy   (pch,"",strlen("C   PROGRAM"));  
  cout<<newstr<<endl;  
  //再将newstr写入文件  
  o.open("text.txt");  
  o.write(newstr,strlen(newstr));  
  o.close();  
  }Top

7 楼killerll()回复于 2006-05-03 22:14:53 得分 0

问问大家。  
  int   deQueue(PNODE   *tail,int   *e)  
  {   PNODE   p,q;  
  if((*tail)->next   ==   *tail)return   –1;  
  p   =   (*tail)->next;  
  q   =   p->next;  
  *e   =   q->value;  
  ___(4)___   =   q->next;  
  if(*tail   =   q)   ___(5)___;  
  free(q);  
  return   0;  
  }  
  为什么这段代码表示队列的出列啊?  
  tail表示尾指针。  
  队列应该是先进先出啊。  
  应该从头指针的方向出列啊。没有弄明白Top

8 楼flamingheart(火焰心)回复于 2006-05-03 22:15:50 得分 0

楼上的,你要是问问题的话自己发个主题贴好不好。Top

9 楼killerll()回复于 2006-05-03 22:16:23 得分 0

我发了主题贴。没有人理我啊!!Top

10 楼dongfeng2008(郑军)回复于 2006-05-21 08:55:35 得分 0

谢谢各位了Top

11 楼jixingzhong(瞌睡虫·星辰)回复于 2006-05-21 10:54:52 得分 0

对文件的操作,  
  删除、修改等比较复杂,  
  因为需要获取数据,修改,回写,还要考虑文件长度等   ...  
   
  所以,  
  一般都是直接读取数据后重新写到一个新的文件中去,  
  这样就可以不需要在原来的文件中考虑指针定位等一些精细的工作了   ....Top

12 楼ugg(逸学堂(exuetang.net))回复于 2006-05-21 10:59:38 得分 0

读入文件内容,删除后回写到文件内。Top

13 楼csucj()回复于 2006-05-21 17:55:13 得分 0

删除C   PROGRAM的部分:  
  int   pos=str.find("C   PROGRAM");  
  if   (pos<str.length())    
  {  
              str.erase(pos,strlen("C   PROGRAM"));  
              cout<<str;  
              fout.clear();  
              fout<<str;  
  }  
  else  
  {  
              cout<<"not   found!"<<endl;    
  }    
        fout.close();  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:dongfeng2008

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo