gets()函数会读入字符串数据,并在后面加'\0'.gets(b)执行之后b[]里面就是:" is red.\0s blue.\0"
众所周知,'\0'是字符串结束标志,printf 的时候到'\0'就结束字符串输出了,所以输出的就是" is red."而不是所有的内容.
结果就是:
Fig flower is red.
Fig flower is red.-s blue.
说明内容只是覆盖了前面的一部分,懂?
fwrite写入时覆盖不覆盖原来文件是用参数决定的
fwrite原型:
size_t?fwrite(const?void*?buffer,?size_t?size,?size_t?count,?FILE*?stream);
返回值:返回实际写入的数据块数目
(1)buffer:是一个指针,对fwrite来说,是要获取数据的地址;
是否覆盖决定于stream
FILE?*stream=fopen("文件名","mod");
其中mod如下:
(1)r 以只读方式打开文件,该文件必须存在.
(10)ab+ 读写打开一个二进制文件,允许读或在文件末追加数据.
用读写r+ 或 w+ 方法打开.
if((fp=fopen("USER.txt","r+"))==NULL)
任何时候想回到文件一开始,就用回绕函数:
rewind(fp);
这样再写就覆盖了.
"a" 打开来 是 从文件尾开始添加新内容.
以上就是土嘎嘎小编为大家整理的c语言函数覆盖内容相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!