c语言如何在特定的某一行进行删除插入等?
发布网友
发布时间:2022-04-23 13:24
我来回答
共1个回答
热心网友
时间:2023-11-02 00:24
C语言文件操作有覆盖和追加两种模式,但不提供插入模式。所以要在文件中指定行进行删除或者插入,需要按照如下流程操作:
1、以只读打开文件;
2、将文件逐行读入到内存中;
3、关闭文件;
4、在内存中对指定行插入或者删除;
5、以只写打开文件;
6、将修改后的数据写入文件;
7、关闭文件。
参考代码:
假定文件最多100行,执行删除第5行,并在原第8,9行中间插入一行数据为例,代码如下:
#include <stdio.h>
#include <string.h>
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;
}
c语言实现文件内容某行删除
首先,找到找到要删除的那一行的行号,假如是j行,然后把指向文件的指针定位到j+1行处(可以使用fseek函数,Linux下可以使用lseek函数);读取一行(此时的文件指针已到达改行的末尾处,也可以认为是到了下一行的开始处),再把文件指针定位到j行,把刚才读出的再写会,使用循环直至文件结束。简单的说就...
求助:如何用c语言实现删除数组中指定的行和列
首先,你这是乱来,完全违背c语言的原则。数组是用来存放空间固定、顺序较不重要的内容的。如果要插入删除的话,最起码也应该用个链表什么的。可以用链表套链表的方式完成,一个链表A的元素B们也是链表,这样元素在A的序号就是行,在B的序号就是列,这样无论插入删除都有据可依。但是,如果你一定要这...
C语言如何从文件中选中一项进行删除后将剩余项全部保存进原文件?
1打开文件 2读取每一行 3如果已经是最后一行 则转到7步骤退出 否则执行第4步骤 4匹配名字 5如果匹配不陈功 重复第2步骤 6匹配成功,删除这一行或者在这一行写空数据替换,并将结构严谨的其他字段所在的行也删除或者用空数据替换掉 7退出
C语言如何添加某一行行或删减某一行。 比如上面那张图到下面那张图...
没法直接添加 只能重新打印 每行的输出 最后加上一个 比如 原本是循环输出10个 一行 改成循环输出11个一行就可以了。
C语言删除字符串中指定字符
一、问题描述:从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。1、输入:第一行是一个字符串; 第二行是一个字符。2、输出:删除指定字符后的字符串。二、设计思路:1、 同插入问题,定义两个字符数组a,b。以及标志删除位置的int型pos。2、用gets函数...
c语言数组中一个数的删除与插入
bool binary_search(int * arr, int size, int v){if((arr == NULL) || (size <= 0)){return false;}int bIndex = 0;int eIndex = size - 1 ;for(int curIndex = size / 2; eIndex != bIndex; curIndex = (bIndex + eIndex) /2){if(v < arr[curIndex]){eIndex = ...
用C语言头插法或尾插法建立带头结点的单链表,实现单链表上的插入,删除...
define TRUE 1 define FALSE 0 define MAXSIZE 20 /* 存储空间初始分配量 */ typedef int Status;/* Status是函数的类型,其值是函数结果状态代码,如OK等 */typedef int ElemType;/* ElemType类型根据实际情况而定,这里假设为int */ Status visit(ElemType c){ printf("%d ",c);return OK;}...
C语言,利用指针编写程序:删除一个字符串中的某一个字符
2、其次就是要定义两个相同容量的字符串储存的变量 char a[100]; char b[100];。以及整数变量 int c; int i=0,j=0; 其中a[100]是存字符串的,b【100】是存你删除对应字符的字符串的,整数C是你想删除第几位。j ,i 是后面for循坏中要使用到的变量。3、 printf("请输入你的字符串...
运用C语言如何删除文件中的某条数据
fprintf(fp, insert); /*插入,就是写入数据*/ fprintf(fp, tmp); /*把原来的数据再写回来, 完成*/ /*3、01读取后++两次,并重新写回文件*/ rewind(fp);fscanf(fp, "%x", &i); /*读取数据*/ i = i+2; /* +2 */ fseek(fp, -2, 1); /*调整指针*/ fprintf(fp...
c语言怎样把代码的第一列全部删除vim
选中第一列的方法是:在普通模式下先用 gg 移到第一行,或者用 13G 之类的方式把光标移到你要开始选中的第一行。然后按 ctrl-v 进入块选模式。然后用 G 选到最后一行,或者同样 23G 方式来到你欲选中的最后一行。之后 d 删除选中内容。选中过程中,用 jk 等行可以上下调整光标。另外,考虑到...