c语言函数ftell C语言函数库

C语言中frewind, fseek, ftell怎么用?

rewind就是把当前文件指针移动到文件开始,fseek文件定位,ftell返回文件当前指针。

创新互联专注于企业营销型网站建设、网站重做改版、岳麓网站定制设计、自适应品牌网站建设、HTML5建站商城网站制作、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为岳麓等各大城市提供网站开发制作服务。

如rewind(fp);fp为文件指针意思是把指针回到文件开始;fseek(fp,nL,1)这个有三种情况0表示文件开始,1表示当前位置,2表示文件末尾,nL表示指针位移量可以为负;ftell(fp)返回文件当前的指针

C语言中有关文件ftell()函数位移量问题: 程序代码如下:

\n输出到文件实际上是 0D 0A 占2个字节

程序写入文件的字节是

31 20 32 20 33 0D 0A 34 20 35 20 35 0D 0A 共14个字节

第一次读入的时候 读入1 空格 2

文件指针移过3个字节 31 20 32

第二次读入的时候 读入 空格 3 换行 4

文件指针移过了5个字节

20 33 0D 0A 34

第三次读入的时候 读入 空格 5 空格 6

文件指针移过4个字节

20 35 20 36

C语言用ftell为什么会得到-11

函数原型是 long int ftell ( FILE * stream );

返回 文件内部读写指针的 当前位置,以字节为单位,二进制文件 数值 等于 距离 文件开始处 多少字节。文本文件 数值 也许没有 意义,但仍可用于 fseek.

得到-1L 表示函数调用 失败。失败原因 需查 errno。

c语言文件指针位移

因为ftell函数的作用就是得到当前指针的位置,

而你写的这个fseek(fp,0,SEEK_END); 指针的位置就是在文件末尾 没有移动

还有指针是以字节为单位 移动的么

就是D了

C语言(谭浩强)里面文件那块ftell()函数具体什么时候会出现返回值为-1L的情况???请高手指教!!

如果文件fp不存在则会返回-1,这是正常的,函数里面进行处理了,比如

int ftell(fp)

{

if( fileExist(fp) )//假定 fileExist 函数可以检测文件是否存在

return (-1);

else

return (0);

........

}

如果不进行文件检测处理,那么指定一个不存在的文件名,并对该文件进行读写操作就会出错,可以看看c++里的异常处理,可以捕获程序异常,并进行相应处理,不至于程序崩溃

c语言,ftell()函数在文本模式和二进制模式下是怎么工作的呢

在文本模式下ftell会自动处理换行符,在UNIX,MSDOS,MAC这三个系统对换行符的定义是不一样的:

UNIX: "\n"

MSDOS: "\r\n"

MAC: "\r"

在文本模式下,假如是在windows系统下"\r\n"会当成一个字符, 而在二进制模式下"\r\n"会忽略操作系统对特殊字符的定义,识别为'\r'和'\n'两个字符。所以ftell返回的偏移量会有所不同。


文章题目:c语言函数ftell C语言函数库
标题网址:http://azwzsj.com/article/doohcpd.html