运用C语言如何删除文件中的某条数据

2024-12-21 13:58:16
推荐回答(4个)
回答1:

比如
#include
#include

int main()
{
FILE *fp;
char *insert = "EE,EE,EE,", tmp[256]={0};
int pos, i;

/*test.txt文件内容:01,00,00,00,0E,00,00,00,00,00,00,E1,E2,00,00,00,00*/
fp = fopen("test.txt", "r+");

/*1、等长覆盖*/
fseek(fp, 12, 1);
fprintf(fp, "0F"); /*直接写入等长度的数据就可以完成覆盖*/

/*2、E2后插入“EE,EE,EE,” */
fseek(fp, 25, 1);
pos = ftell(fp); /*插入位置*/
fgets(tmp, 256, fp); /*把后面的数据缓存*/
fseek(fp, pos, 0); /*移动到插入位置*/
fprintf(fp, insert); /*插入,就是写入数据*/
fprintf(fp, tmp); /*把原来的数据再写回来, 完成*/

/*3、01读取后++两次,并重新写回文件*/
rewind(fp);
fscanf(fp, "%x", &i); /*读取数据*/
i = i+2; /* +2 */
fseek(fp, -2, 1); /*调整指针*/
fprintf(fp, "%02x", i); /*写文件*/

fclose(fp);
system("PAUSE");
return 0;
}

回答2:

你在fprintf之前已经关闭文件了,应该用写模式打开文件。

fp = fopen( wenjianming, "wb+" )

回答3:

这句话明显错误:scanf("%s",&wenjianming);

wenjianming变量本身就是地址,不需要取地址的。

回答4:

私信我把。。。这尼玛这么一坨。。。