fp = _tfopen(TEXT("C:\\1.txt"),TEXT("r+b"));
fseek(fp,2,0);
fgetpos(fp,pos);

解决方案 »

  1.   

    代码是
    fpos_t *spos;
    fpos_t *epos;
    fp = _tfopen(TEXT("C:\\1.txt"),TEXT("r+b"));
    fseek(fp,2,0);

    wint_t c;
    c = fgetwc(fp);
    while(c!=WEOF)
    {
    fgetpos(fp,spos);//这儿报错
    int i = 0;
    while(c!=0x000d)
    {
    i++;
    c = fgetwc(fp);
    }
    fgetpos(fp,epos);
    fsetpos(fp,spos);
    wchar_t *pBuf = new wchar_t[(i+1)];
    wmemset(pBuf,0,(i+1));
    fread(pBuf,2,(i+1),fp);
    delete[] pBuf;
    fsetpos(fp,epos);
    }
    fclose(fp);
    错误是int __cdecl fgetpos (
            FILE *stream,
            fpos_t *pos
            )
    {
    #ifdef _MAC
            int posl = ftell(stream);        *pos = (fpos_t) posl;        if ( posl != -1L )
    #else  /* _MAC */
            if ( (*pos = _ftelli64(stream)) != -1i64 )//错误所在
    #endif  /* _MAC */
                    return(0);
            else
                    return(-1);
    }