这条线

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/

10-11 15:53