0

这是一个极简代码:

#include <string>
#include <sstream>
#include <iostream>

int main ()
    {
    std::string str = "spam" ;
    std::istringstream isz( str ) ;
    isz.seekg( 1,std::ios_base::beg ) ; std::cout << isz.fail() ;
    isz.seekg( 1,std::ios_base::cur ) ; std::cout << isz.fail() ;
    isz.seekg( 1,std::ios_base::end ) ; std::cout << isz.fail() ;
    return 0 ;
    }

我明白001最后一次seekg失败的意思。
我对 linux/g++ 和 win/MSVC 也是如此。
我在 C++/stl 文档中找不到这样的限制……
知道吗?
谢谢

4

1 回答 1

2

抱歉,我错过了一点:
当我打电话时,我尝试在结束seekg( 1,std::ios_base::end )走 1 个字符(它应该失败)。 我必须在结束打电话去 1 个字符。
seekg( -1,std::ios_base::end )

于 2022-02-25T18:28:58.893 回答