登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

ideality

@linux c 编程@

 
 
 

日志

 
 
 
 

c 删除文件中的一行  

2013-07-03 10:54:14|  分类: netfilter |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
比如有个文件内容
01:aaaaaaaaaa
02:bbbbbbbbb
03:cccccccccccc
04:ddddddddddd
05:eeeeeeeeee


怎么根据03这个行号来删除那一行呢? 变成如下:
01:aaaaaaaaaa
02:bbbbbbbbb
04:ddddddddddd
05:eeeeeeeeee

删除文件里的一行内容,后面的行向前移动一行,清空最后一行,程序如下:

假定一行不超过1000字符,
删去第3行,L=3.  
输入输出文件名 a.txt


C/C++ code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<stdio.h> 
 
void main()
{
FILE *fin;
fpos_t pos_w,pos_r,pos;
int i,k,L=3;
char *one_line;
 
one_line = (char *) malloc(1000*sizeof(char));
 
fin = fopen ("a.txt","rb+");
for (i=1;i<L;i++) fgets(one_line,999,fin);
 
fgetpos (fin,&pos_w);
fgets(one_line,999,fin); // delete
fgetpos (fin,&pos_r);
pos = pos_r;
 
while (1 == 1)
{
fsetpos (fin,&pos);
if (fgets(one_line,999,fin) ==NULL) break;
fgetpos (fin,&pos_r);
pos = pos_w;
fsetpos (fin,&pos);
fprintf(fin,"%s",one_line);
fgetpos (fin,&pos_w);
pos = pos_r;
}
pos = pos_w;
fsetpos (fin,&pos);
k = strlen(one_line);
for (i=0;i<k;i++) fputc(0x20,fin);
fclose(fin);
  评论这张
 
阅读(1022)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018