c语言编程中怎么实现数据的覆盖!

c语言编程中怎么实现数据的覆盖!,第1张

用读写r+ 或 w+ 方法打开。

if((fp=fopen("USER.txt","r+"))==NULL)

任何时候想回到文件一开始,就用回绕函数:

rewind(fp)

这样再写就覆盖了。

"a" 打开来 是 从文件尾开始添加新内容。

#include <stdio.h>

#include <windows.h>

void gotoxy(int x, int y)

{ COORD pos = {x,y}

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE)// 获取标准输出设备句柄

SetConsoleCursorPosition(hOut, pos)//两个参数分别是指定哪个窗体,具体位置

}

int main()

{ int x,y

char s[80]

printf("hello,world!\n")

printf("hello,world!\n")

printf("hello,world!\n")

printf("What\'s your name? ")

gets(s)

gotoxy(0,2)

printf("hello,%s!                     \n                                 \n",s)

return 0

}

你需要解决两个问题。

1、待更改的文件应该是以“块”状形式写入的,比如fwrite((void *)student stu,sizeof(student),1L,fp),只有这样才能准确定位待更改“块”的位置。而以fprintf()写入的文件,可能由于数据的不同,每个结构数据占用的空间就不同,即使你能准确定位,但写入新数据后,若长度短了,剩余的空间可能造成混乱,若长度长了,可能造成”覆盖“。

2、打开文件同时用于”读/写“时,打开的格式是"r+"或”w+“。

另外,还需要搞清楚文件读写指针的使用特点,前两个问题解决后再讨论。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11539924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存