0

每当我想将位置设置为 X tellp return -1 时,我对 fstream 中的 seekp() 有一点问题。

代码:

fstream file("Riot.exe", ios::in | ios::binary | ios::out);
file.seekg(0, ios::beg);

...

if (...)
{ 
    long pos;
    file.seekp(882444);
    pos = file.tellp();
    std::cout << pos << std::endl; // pos = -1 
}

结果是,那个pos返回-1,我该怎么办?

提前致谢!

4

1 回答 1

1

要查找文件末尾,请将相对位置设置为 0,将基本位置设置为ios::end

if (...)
{ 
    std::streampos pos;
    file.seekp(0, ios::end);                                                   /*
              ^^^^^^^^^^^^^                                                    */
    pos = file.tellp();
    std::cout << pos << std::endl; 
}
于 2013-06-23T15:07:08.520 回答