gpt4 book ai didi

c - 试图理解 ftell 函数的返回值

转载 作者:可可西里 更新时间:2023-11-01 11:46:18 29 4
gpt4 key购买 nike

#include<stdio.h>
#include<string.h>

int main()
{
long int count;
FILE *file=NULL;

file=fopen("sample.txt","r+");
if(file==NULL)
{
printf("file open fail\n");
return;
}
printf("file open succesfull\n");

if(0!=fseek(file,1,SEEK_END))
{
printf("seek failed\n");
return;
}
printf("seek successful\n");

count=ftell(file);

printf("%lu", count);

return 0;
}

输出

file open succesfull
seek successful
3

我的 smaple.txt 文件只有一个字符,那就是 q。为什么这里显示 3 ?另外,当我让文件为空时,ftell() 返回 1,那是什么?
在 ubuntu 12.04 上工作

最佳答案

您的fseek(file, 1, SEEK_END) 将位置放在文件末尾之后 一个字符处。这解释了为什么您观察到 count 是空文件的一个。我猜你的文件只包含一个 q,还包含一个由两个字符组成的回车符。末尾后面的字符是 3,这是您观察到的。

关于c - 试图理解 ftell 函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109881/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com