c语言 如果一个文本文件第一次写入然后第二次写入时并没有fseek到尾部,会不会直接就把第一次的

c语言 如果一个文本文件第一次写入然后第二次写入时并没有fseek到尾部,会不会直接就把第一次的数据覆盖掉?(也就是让第一次的全给删了…)

1、首先在打开的c语言,打开文件,如下图所示。

2、然后定义一个变量len1,如下图所示。

3、接着写上fwrite函数,如下图所示。

4、第一个参数是写入的内容,第二个参数是单个字符所占的字节。第三个参数是字符的数量。

5、第四个参数是文件句柄。最后判断是否写入成功,如下图所示就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-03
#include <string.h>
#include <stdio.h>
int main(void)
{
FILE *fp;
char str[]="This is test";

char buf[20];

if ((fp=fopen("c:\\test.txt","a+"))==NULL)
{
fprintf(stderr,"Cannot open output file!!\n");
return 1;
}
int i=strlen(str);
fprintf(fp,"%s\n",str);//替换 fwrite(str,strlen(str)+1,1,fp);
fprintf(fp,"abcdefg\n");//替换 fwrite("abcdefg",8,1,fp); //7个字符,写入8个,以保证'\0'能输进去。
fseek(fp,SEEK_SET,0);

fread(buf,strlen(str)+1,1,fp);
printf("%s",buf);

fread(buf,7+2,1,fp);
printf("%s\n",buf);
fclose(fp);
return 0;
}追问

这是什么东东

本回答被网友采纳
第2个回答  2015-06-03
是的追问

如果第二次的数据比第一次少呢

追答

会部分覆盖

追问

也就是这样不能实现删除文件中一条数据的功能了,或者说有漏洞?

本回答被提问者采纳
相似回答