C语言fseek函数一个很头疼问题?

来源:百度知道 编辑:UC知道 时间:2024/06/03 15:09:15
fseek(fp,(5*sizeof(int)),SEEK_SET)
比如说文本文件里写着,100,200,300,400,500,600。。。
这是fseek吧光标移动到(5*sizeof(int))远的地方,就是第10个字节那,那样数的话,因该是到4那! 但是为什么实际输出是500呢
文本文件里字节是这么算的呢?

在大部分情况下,
在用二进制格式存储的时候,一个int类型占4个字节。
5 *sizeof(int) = 20
此时光标移到600前面,如果你读的话
int i;
fread( fp, &i, sizeof(i) );
读到的是600

5*sizeof(int)这个不是20个字节吗,一个INT是4字节的,你存的,100,200。。是INT类型的把那个也是4字节表示的, 那不是第5个int值内容吗,具体看内存的信息用单步调试把

读文本格式文件不要用二进制方式!