c语言删除一行
1. c语言,删除一行
删除文件里的一行内容,后面的行向前移动一行,清空最后一行,程序如下:
假定一行不超过1000字符,
删去第3行,L=3.
输入输出文件名
a.txt
#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);
}
2. c语言中清除一行的命令
试一下这个:
#include <stdio.h>
int main()
{
float I,n;
printf("1234\n");
printf("3456");
printf("\b\b\b\b");
return 0;
}
3. c语言实现文件内容某行删除
整体思路如下:
首先,找到找到要删除的那一行的行号,假如是j行,然后把指向文件的指针定位到j+1行处(可以使用fseek函数,Linux下可以使用lseek函数);
读取一行(此时的文件指针已到达改行的末尾处,也可以认为是到了下一行的开始处),再把文件指针定位到j行,把刚才读出的再写会,使用循环直至文件结束。
简单的说就是把后面的每一行一行一行的读出,再一行一行的写到前面一行。
4. C语言如何把一个文本文件的某一行删除掉
可以用c语言的fseek()函数(stdio.h),...随机读写
要知道, 一个文件打开后有一个位置指针, 指示当前读写位置..
顺序读写时, 读写一个, 系统自动把位置指针移动到下一位置...
用fseek()就可以手动更改..
用法是fseek(FILE*(文件指针),long offset(偏移量),int whence(参考位置))
参考位取值:0 文件开头, 1 当前位置, 2 文件最后..
作用就是将FILE*指定的文件的位置指针从参考位置移动offset字节
移动方向由offset的+/-决定..
另外用rewind()可以将位置指针恢复到文件头..
5. 如何用c语言实现删除文件中指定的数据;例如
1、首先我们输入【deleteScore】函数,先看整体代码,再一一解释。
注意事项:
C语言提供了许多低级处理的功能,并仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
6. c语言中结果空了一行怎么办
删除原文本空行。C语言是一种计算机程序设计语言,c语言中结果空了一行需要删除原文本空行。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
7. C语言中如何删除文件中的一条记录
1、删除文件部分内容的大概步骤:新建一个临时文件,把原文件内容向临时文件里拷贝,遇到要删除的内容就跳过。结束后关闭文件,用remove("原文件名");把原文件删除,用rename("临时文件名","原文件名");把临时文件名改为原文件名。
2、例如在原文件123.txt中删除以2和以4编号开头的行,可用以下代码实现:
#include"stdio.h"
#include"stdlib.h"
intmain(void){
FILE*fin,*ftp;
chara[1000];
fin=fopen("123.txt","r");//读打开原文件123.txt
ftp=fopen("tmp.txt","w");//写打开临时文件tmp.txt
if(fin==NULL||ftp==NULL){
printf("Openthefilefailure... ");
exit(0);
}
while(fgets(a,1000,fin))//从原文件读取一行
if(a[0]!='2'&&a[0]!='4')//检验是要删除的行吗?
fputs(a,ftp);//不是则将这一行写入临时文件tmp.txt
fclose(fin);
fclose(ftp);
remove("123.txt");//删除原文件
rename("tmp.txt","123.txt");//将临时文件名改为原文件名
return0;
}