当前位置:首页 » 编程语言 » c语言输出怎么删掉一行
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言输出怎么删掉一行

发布时间: 2022-12-22 04:37:38

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);
}

⑵ 怎么用c语言删除文件第一行

#include<stdio.h>
voidmain(){
FILE*fin,*fout;
intc;

fin=fopen("t.txt","r");
fout=fopen("t.tmp","w");
while(1){
c=fgetc(fin);
if(EOF==c)break;
if(' '==c)break;
}
if(EOF!=c)
while(1){
c=fgetc(fin);
if(EOF==c)break;
fputc(c,fout);
}
fclose(fin);
fclose(fout);
remove("t.txt");
rename("t.tmp","t.txt");
}

⑶ 用C语言删除空行(上一行)。

#include<stdio.h>
#include<stdlib.h>//forfunctionexit()
#include<string.h>//forfunctionsstrcpy()andstrlen()

constintMAXSIZE=200;//行最多字符数

intmain(){
charline[MAXSIZE],pline[MAXSIZE];
FILE*inp;//被修改的磁盘文件
FILE*outp;//修改后的磁盘文件
charoldfile[]="indata.txt";
charnewfile[]="outdata.txt";
if((inp=fopen(oldfile,"rt"))==NULL||(outp=fopen(newfile,"wt"))==NULL){
printf("打开文件时出错! ");
exit(1);
}
fscanf(inp,"%s",pline);
while(!feof(inp)){
fscanf(inp,"%s",line);
if(strlen(line)>=1){//本行不是空行
fprintf(outp,"%s%s",pline,line);//上一行和本行被全部写入新文件
}
else{//本行是空行
fprintf(outp,"%s",line);//仅写入本行,上一行被丢弃
}
strcpy(pline,line);//当前行变成了上一行
}
fclose(inp);
fclose(outp);
return0;
}

⑷ c语言中清除一行的命令

试一下这个:
#include <stdio.h>
int main()
{
float I,n;
printf("1234\n");
printf("3456");
printf("\b\b\b\b");
return 0;
}

⑸ C语言如何把一个文本文件的某一行删除掉

可以用c语言的fseek()函数(stdio.h),...随机读写
要知道, 一个文件打开后有一个位置指针, 指示当前读写位置..
顺序读写时, 读写一个, 系统自动把位置指针移动到下一位置...
用fseek()就可以手动更改..
用法是fseek(FILE*(文件指针),long offset(偏移量),int whence(参考位置))
参考位取值:0 文件开头, 1 当前位置, 2 文件最后..
作用就是将FILE*指定的文件的位置指针从参考位置移动offset字节
移动方向由offset的+/-决定..
另外用rewind()可以将位置指针恢复到文件头..

⑹ C语言:如何根据需要删除文件中特定的行

C语言文件操作有覆盖和追加两种模式,但不提供插入模式。所以要在文件中指定行进行删除或者插入,需要按照如下流程操作: 1、以只读打开文件; 2、将文件逐行读入到内存中; 3、关闭文件; 4、在内存中对指定行插入或者删除; 5、以只写打开文件; 6、将修改后的数据写入文件; 7、关闭文件。参考代码:假定文件最多100行,执行删除第5行,并在原第8,9行中间插入一行数据为例,代码如下: #include #include char buf[100][1000];int main(){ FILE *fp; char *s="abcdef\n";//要插入的数据 int i=0; int n=0; fp = fopen("my.txt", "r");//读方式打开文件 while(fgets(buf[n], 1000, fp) != EOF)//循环读取所有数据 n++; fclose(fp);//关闭文件。 for(i = 4; i<7; i ++)//删除第五行 strcpy(buf[i],buf[i+1]); strcpy(buf[7], s);//插入到第8行。 fp=fopen("my.txt", "w");//写方式打开文件。 for(i = 0; i < n; i ++)//写入所有处理后的数据。 fputs(buf[i], 1000, fp); fclose(fp);//关闭文件。 return 0; }