首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++输入流可不可以定位

2013-08-01 
c++输入流可否定位int _tmain(int argc, _TCHAR* argv[]){int adouble cstd::string strstd::cinast

c++输入流可否定位
int _tmain(int argc, _TCHAR* argv[])
{
    int a;
    double c;
    std::string str;
    std::cin>>a;
    std::cin.seekg(0,std::ios::beg);
    std::cin>>c;
    std::cout<<a<<c;
return 0;
}
输入:123.456
输出结果如何?

[解决办法]
不懂 没有深入理解
[解决办法]
标准输入输出流的具体缓冲流类是单独设计的,它没有设计定位的功能,所以使用seek系列函数是无效的,想让cin、cout具备定位能力,需要替换它们的具体缓冲流类,改为stringbuf或者filebuf等皆可,例如:


std::stringbuf buf( std::ios_base::in );
buf.str( "123 456" );
std::streambuf* oldBuf = std::cin.rdbuf( &buf );
int a;
std::cin.seekg( 3, std::ios_base::beg );
std::cin >> a;
std::cout << a;
std::cin.rdbuf( oldBuf );

[解决办法]
cin中要定位,你是想完成什么样的功能?
也许不需要定位,有其他方法能满足你的想法的。

热点排行