这条线
Assert(pos == ftell(file));
在我的代码中使用,当文件包含非ASCII字符时,此行失败。
我该怎么办?
为了清楚起见,这是整个功能的更新:
int getTerminatedString(char * dest, int length)
{
char * rv = fgets(dest,length,file);
int len = -1;
if(rv)
{
len = strlen(rv);
pos += len;
assert(pos == ftell(file));
}
return len;
}
谢谢!
最佳答案
如果您以二进制模式打开文件,例如fopen("yourfile","rb")
,ftell
将给出文件中的偏移量,而与内容无关。
关于c++ - ftell可以用于非ASCII字符吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14327117/