社区
C语言
帖子详情
在c语言中如何删除文件中的内容
ybdesire
2008-06-07 08:57:02
有很多往文件中写入内容或读出内容的函数如fprintf(),fputc()
但不知道哪个函数能够删除文件中的内容?????
往文件中写入一个字符串后删出这个字符串后面的所有内容,要怎么才能实现?
...全文
3113
23
打赏
收藏
在c语言中如何删除文件中的内容
有很多往文件中写入内容或读出内容的函数如fprintf(),fputc() 但不知道哪个函数能够删除文件中的内容????? 往文件中写入一个字符串后删出这个字符串后面的所有内容,要怎么才能实现?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
glbfor_gtw
2012-01-06
打赏
举报
回复
C语言有一个文件 截断的函数。。叫 truncate 还是什么。。反正就是截断的 英文翻译。。。
q54145791
2011-12-19
打赏
举报
回复
如果是小的文件的话可以直接全部装载到内存然后在内存修改以后再写入文件。
如果是大的文件的话可以先读入部分内容到内存,然后和需要删除的内容对比,如果对比成功的话,再读一次,然后文件指针向前移动2位,再将读的内容写入文件指针,直到文件结尾。
if(fread(c,sizeof(***),1,fp)=="删除内容")
while(!feof(fp))
{
fread(c,sizeof(****),1,fp);
fseek(fp,-sizeof(***)*2,fp);
fwrite(c,sizeof(****),1,fp);
}
多来哈米
2011-11-05
打赏
举报
回复
好主意
windtker
2011-08-28
打赏
举报
回复
用这个rewind,把指针放置到文档开始位置就可以了
zhb123168
2010-08-13
打赏
举报
回复
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 void delcomm(FILE *fp1, FILE *fp2)
5 {
6 char c;
7 int i = 0;
8
9 while(!feof(fp1))
10 {
11 printf("test!\n");
12 if((c = fgetc(fp1)) == '\n')
13 {
14 fprintf(fp2, "\n");
15 }
16 else
17 {
18 switch(i)
19 {
20 case 0:
21 if(c == '/')
22 {
23 c = fgetc(fp1);
24 if(c == '/')
25 {
26 while(c != '\n')
27 {
28 c = fgetc(fp1);
29 }
30 i = 0;
31 fprintf(fp2, "\n");
32 break;
33 }
34 else
35 {
36 if(c == '*')
37 {
38 i = 3;
39 break;
40 }
41 i = 1;
42 }
43 }
44 else
45 {
46 fprintf(fp2, "%c", c);
47 }
48 break;
49 case 1:
50 if(c == '*')
51 {
52 i = 2;
53 }
54 else
55 {
56 fprintf(fp2, "/%c", c);
57 i = 0;
58 }
59 break;
60 case 2:
61 if(c == '*')
62 {
63 i = 3;
64 }
65 break;
66 case 3:
67 i = (c == '/') ? 0 : 2;
68 break;
69 }
70 }
71 }
72 }
73 int main()
74 {
75 FILE *fp1, *fp2;
76
77 if((fp1 = fopen("1.c", "r")) == NULL)
78 {
79 printf("Open file 1.c error!\n");
80 exit(1);
81 }
82 if((fp2 = fopen("2.c", "w")) == NULL)
83 {
84 printf("Open file 2.c error!\n");
85 exit(1);
86 }
87
88 delcomm(fp1, fp2);
89
90 fclose(fp1);
91 fclose(fp2);
92
93 return 0;
94 }
geekblizzarddc
2009-06-15
打赏
举报
回复
帮顶
lala9517
2008-06-08
打赏
举报
回复
感觉还是全读出来,修改了再写进去吧
虽然开销大点,但没想到别的办法。。。。。。
jieao111
2008-06-08
打赏
举报
回复
ofstream out(1.txt);
out<<"原来的全部删除了";
jieao111
2008-06-08
打赏
举报
回复
[Quote=引用 11 楼 wanfustudio 的回复:]
关键要看你写入字符串的位置。
[/Quote]
开头的话,好实现,^_^
puzzlesky
2008-06-08
打赏
举报
回复
没看懂楼主的要求。
ybdesire
2008-06-08
打赏
举报
回复
读出来,修改以后在送入文件,如果这个修改是“删除”,那么送入的只能覆盖掉文件中的
一部分
内容,将来在读时可能会产生bug。
看来只能是 读出来,修改,删除原文件,重建文件,在把修改好的送入那个新建的文件里了
谢谢大家~ ~ 不知还有没有好方法?
ming470612141
2008-06-08
打赏
举报
回复
我觉得应该很难实现,唯一的实现方法就是不停地移动文件指针
然后修改文件中的部分内容,但是这样太难控制了
所以我觉得应该是先将文件中的内容读到内存中,然后对内存中的内容进行修改,
最后写入到修改的文件中去,就可以了,这样就非常方便了
飞哥
2008-06-07
打赏
举报
回复
关键要看你写入字符串的位置。
飞哥
2008-06-07
打赏
举报
回复
应该没有此类的函数
文件毕竟是在外存存储的,你之前删除了一块,那文件还能用了吗?
Supercaller
2008-06-07
打赏
举报
回复
lz你现在已经使用了一个标准的方法了
visame
2008-06-07
打赏
举报
回复
[Quote=引用 5 楼 sunman1982 的回复:]
ios::trunc 貌似是这个选项, 自己查吧。
[/Quote]
别人问的是C语言好不好!
我觉得这个要求不能实现。没有删除文件中某一段内容的函数
因为文件毕竟不是内存,可以随便删改的。
你只能先读入再写出最后覆盖之类的
sunman1982
2008-06-07
打赏
举报
回复
标准c fopen
用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
ybdesire
2008-06-07
打赏
举报
回复
我要标准C~~
不知有没有相关函数~~~
如果能删除部分当然是最好了,不行的话只能把想要的部分拷下来,
删除那个文件后重建一个在送进去了~~~~
sunman1982
2008-06-07
打赏
举报
回复
ios::trunc 貌似是这个选项, 自己查吧。
lijiawlm
2008-06-07
打赏
举报
回复
楼主好像是要部分删除文件中的内容~~
好难^^^
加载更多回复(3)
C语言
大全第4版+源码(PDF)
本书是“C:The Complete Beference”的第四版。在第一版问世以来的几年
中
,程序设计领域已经发生了很大变化。Internet和World Wide Web已成为计算领域一道亮丽的风景,Java已经开发出来,C++也已标准化。与此同时,新的C标准(称为C99)也已制订。尽管C99并没有被大肆炒作,但它确实是过去5年里计算领域
中
最重要的一个事件。在历史的洪流
中
,人们很容易只注意那些新的事物,而忽视了用以构筑未来的坚实基础。
C语言
正是这样的基础。世界上的许多程序代码是在C上运行的。C++正是在此基础上建立的,其语法构成了Java的基础。然而,如果C仅是其他语言的起点,它就会成为有趣但却遭到遗弃的语 注: 原
文件
大小:15499 KB
C语言
精彩编程100例
C语言
入门教程:主要针对
C语言
初学者,从零讲解各个细节。
c语言
实现
删除
文件
的指定行(
内容
)
c语言
实现
删除
文件
的指定行(
内容
) 原
文件
是index.txt,
删除
后的
文件
保存在result.txt
文件
中
(也就是把不
删除
的
文件
保存到result.txt
中
) 本程序实现从输入
内容
所在行开始,直至特定字符结束
C语言
文件
操作(
文件
读写)
文章目录前言一、
文件
1.什么是
文件
?2.
文件
名二、
文件
的打开和关闭1.
文件
指针2.
文件
的打开与关闭三、
文件
的顺序读写总结 前言 本文主要介绍
C语言
中
文件
操作的相关
内容
(例:
文件
读、写等相关函数)。 一、
文件
在对计算机的使用
中
我们几乎离不开
文件
。例如常见的有word 文档,txt文本
文件
,图片
文件
、音频
文件
等。 1.什么是
文件
?
文件
是以计算机硬盘为载体存储在计算机上的信息集合。是数据源的一种,最主要的作用是保存数据。 在程序设计
中
,我们可将
文件
分为两大类:程序
文件
和数据
文件
(1)程序
文件
包.
C语言
_关于
文件
内容
删除
的两个方法总结
最近在写
C语言
的学生管理系统,遇到了关于怎么直接
删除
文件
内容
的问题我找到了两种方法- 第一种是这样 fp = fopen("users.txt", "r+"); fp1 = fopen("linshi.txt", "w+");//读写新建一个临时
文件
while (fread(p1, sizeof(Node), 1, fp))//从原
文件
...
C语言
70,019
社区成员
243,267
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章