【问题】打开文件都是向文件添加数据,就是以a+方式打开,用ftell函数直接得到当前位置,如果不为0,则说明文件不为空;但调试发现打开文件后用ftell函数得到的当前位置值为零?
ab+表示以二进制方式打开,数据写入时在原内容后追加;打开后指针在文件头部(所以 ftell() 获取的当前文件中已写入的数据长度为0);
但是fwrite的时候会判断打开模式,如果是ab+则移动到文件尾再写入
ftell() 功能:获取当前读写位置偏离文件头部的字节数.
总结:
1)用fopen函数打开文件时,文件指针都处在文件开头处,包括用a和a+方式打开,只是在第一次写时位置指针会移动到文件末尾处;
2)只要用"a”方式打开,那么无论用fseek,rewind等文件位置指针定位函数,在写入文件信息时,均只能写入到文件末尾。