大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你需要解决两个问题。
创新互联建站主营高邑网站建设的网络公司,主营网站建设方案,APP应用开发,高邑h5微信小程序定制开发搭建,高邑网站营销推广欢迎高邑等地区企业咨询
1、待更改的文件应该是以“块”状形式写入的,比如fwrite((void *)student stu,sizeof(student),1L,fp);,只有这样才能准确定位待更改“块”的位置。而以fprintf()写入的文件,可能由于数据的不同,每个结构数据占用的空间就不同,即使你能准确定位,但写入新数据后,若长度短了,剩余的空间可能造成混乱,若长度长了,可能造成”覆盖“。
2、打开文件同时用于”读/写“时,打开的格式是"r+"或”w+“。
另外,还需要搞清楚文件读写指针的使用特点,前两个问题解决后再讨论。
#includestdio.h
#includestring
void main()
{
char ch[15]="12345";
printf("覆盖之前字符为:%s\n",ch);
strcpy(ch,"1122334455");
printf("覆盖之后字符为:%s\n",ch);
}
用读写r+ 或 w+ 方法打开。
if((fp=fopen("USER.txt","r+"))==NULL)
任何时候想回到文件一开始,就用回绕函数:
rewind(fp);
这样再写就覆盖了。
"a" 打开来 是 从文件尾开始添加新内容。
fopen的第二个打开模式参数 用“w”
"w"
打开用于写入的空文件。 如果给定文件存在,则其内容会被销毁。