C fseek,文件的最后一个字节是什么意思?
这个问题在一次测验中突然出现: 将“Z”替换为正确的数字,以将文件指针“fp”设置为文件的最后一个字节:C fseek,文件的最后一个字节是什么意思?,c,file,fseek,C,File,Fseek,这个问题在一次测验中突然出现: 将“Z”替换为正确的数字,以将文件指针“fp”设置为文件的最后一个字节: fseek( fp, Z, SEEK_END ); 我的答案是-1,因为对我来说,处于某个字节似乎很自然,意味着处于这样一个位置,即附加到该文件将覆盖该字节,并继续存储其他字节(如果有的话)。老师坚持0。如果您能解释一下,我将不胜感激。-1似乎是正确的。我刚刚试过,在fseek(f,-1,SEEK\u END)之后的fgetc生成了文件的最后一个字符。相对于SEEK\u END查找0导致f
fseek( fp, Z, SEEK_END );
我的答案是-1,因为对我来说,处于某个字节似乎很自然,意味着处于这样一个位置,即附加到该文件将覆盖该字节,并继续存储其他字节(如果有的话)。老师坚持0。如果您能解释一下,我将不胜感激。-1似乎是正确的。我刚刚试过,在
fseek(f,-1,SEEK\u END)
之后的fgetc
生成了文件的最后一个字符。相对于SEEK\u END
查找0导致fgetc
返回EOF
显然,指向文件的最后一个字节不同于指向文件的结尾。此外,如果术语有任何歧义,那是考试的失败,而不是学生的失败。如果学生已经证明了预期的知识,他们应该获得学分。-1似乎是正确的。我刚刚试过,在
fseek(f,-1,SEEK\u END)
之后的fgetc
生成了文件的最后一个字符。相对于SEEK\u END
查找0导致fgetc
返回EOF
显然,指向文件的最后一个字节不同于指向文件的结尾。此外,如果术语有任何歧义,那是考试的失败,而不是学生的失败。如果学生展示了预期的知识,他们应该获得学分。Hmm,我们无法判断您是否正确地将老师的问题从格鲁吉亚语翻译为英语。老师说你没有,就这样吧。这是一个SDSU项目,所以是英语的。这正是英语中的问题嗯,我们无法判断你是否正确地将老师的问题从格鲁吉亚语翻译成英语。老师说你没有,就这样吧。这是一个SDSU项目,所以是英语的。这正是英语中的问题。请注意,这取决于实现。使用
fseek()
查找以二进制模式打开的文件的结尾是一种未定义的行为:“二进制流不需要有意义地支持fseek
调用,调用值为seek\u end
”,在以文本模式打开的文件上使用SEEK\u END
和非零偏移量也是未定义的行为:“对于文本流,offset
应为零,或者offset
应为先前成功调用ftell
函数返回的值……”因此在严格符合C代码的情况下,无法完成。请注意,这取决于实现。使用fseek()
查找以二进制模式打开的文件的结尾是一种未定义的行为:“二进制流不需要有意义地支持fseek
调用,调用值为seek\u end
”,在以文本模式打开的文件上使用SEEK\u END
和非零偏移量也是未定义的行为:“对于文本流,offset
应为零,或者offset
应为先前成功调用ftell
函数返回的值……”因此在严格符合C代码的情况下,这是无法实现的。