cplusplus
.com
教程
参考
文章
论坛
C++
教程
参考
文章
论坛
参考
C 库
<cassert> (assert.h)
<cctype> (ctype.h)
<cerrno> (errno.h)
C++11
<cfenv> (fenv.h)
<cfloat> (float.h)
C++11
<cinttypes> (inttypes.h)
<ciso646> (iso646.h)
<climits> (limits.h)
<clocale> (locale.h)
<cmath> (math.h)
<csetjmp> (setjmp.h)
<csignal> (signal.h)
<cstdarg> (stdarg.h)
C++11
<cstdbool> (stdbool.h)
<cstddef> (stddef.h)
C++11
<cstdint> (stdint.h)
<cstdio> (stdio.h)
<cstdlib> (stdlib.h)
<cstring> (string.h)
C++11
<ctgmath> (tgmath.h)
<ctime> (time.h)
C++11
<cuchar> (uchar.h)
<cwchar> (wchar.h)
<cwctype> (wctype.h)
容器
C++11
<array>
<deque>
C++11
<forward_list>
<list>
<map>
<queue>
<set>
<stack>
C++11
<unordered_map>
C++11
<unordered_set>
<vector>
输入/输出
<fstream>
<iomanip>
<ios>
<iosfwd>
<iostream>
<istream>
<ostream>
<sstream>
<streambuf>
多线程
C++11
<atomic>
C++11
<condition_variable>
C++11
<future>
C++11
<mutex>
C++11
<thread>
其他
<algorithm>
<bitset>
C++11
<chrono>
C++11
<codecvt>
<complex>
<exception>
<functional>
C++11
<initializer_list>
<iterator>
<limits>
<locale>
<memory>
<new>
<numeric>
C++11
<random>
C++11
<ratio>
C++11
<regex>
<stdexcept>
<string>
C++11
<system_error>
C++11
<tuple>
C++11
<type_traits>
C++11
<typeindex>
<typeinfo>
<utility>
<valarray>
<streambuf>
basic_streambuf
streambuf
wstreambuf
streambuf
streambuf::~streambuf
streambuf::streambuf
公有成员
streambuf::getloc
streambuf::in_avail
streambuf::pubimbue
streambuf::pubseekoff
streambuf::pubseekpos
streambuf::pubsetbuf
streambuf::pubsync
streambuf::sbumpc
streambuf::sgetc
streambuf::sgetn
streambuf::snextc
streambuf::sputbackc
streambuf::sputc
streambuf::sputn
streambuf::sungetc
受保护成员
streambuf::eback
streambuf::egptr
streambuf::epptr
streambuf::gbump
streambuf::gptr
C++11
streambuf::operator=
streambuf::pbase
streambuf::pbump
streambuf::pptr
streambuf::setg
streambuf::setp
C++11
streambuf::swap
虚保护成员
streambuf::imbue
streambuf::overflow
streambuf::pbackfail
streambuf::seekoff
streambuf::seekpos
streambuf::setbuf
streambuf::showmanyc
streambuf::sync
streambuf::uflow
streambuf::underflow
streambuf::xsgetn
streambuf::xsputn
参考
<streambuf>
streambuf
pbackfail
受保护的虚函数
<streambuf> <iostream>
std::
streambuf
::pbackfail
int pbackfail (int c = EOF);
在备用下溢时将字符放回
由其他成员函数调用的虚函数,用于将字符放回*受控输入序列*并减少位置指示器。
它仅应在*获取指针*(
gptr
)没有可用的回放位置,或者要放回的字符与缓冲区中的字符不匹配时(如公共成员函数
sungetc
和
sputbackc
所做的那样)被调用。
在
streambuf
中,它的默认行为是始终返回
EOF
(表示失败),但派生类可以覆盖此行为,以修改
gptr
和
egptr
内部指针,从而使更多来自输入序列的字符可以通过缓冲区访问(如果可用)。
filebuf
和
stringbuf
都覆盖了这个虚成员函数。
参数
c
要放回的字符,或者*文件结束*值(
EOF
)以保持回放位置的字符值。
如果函数成功并且
c
与该位置的字符不匹配,则*受控输入序列*的内容是否被修改是未指定的。
返回值
成功时,放回字符的值,转换为 `int` 类型。
失败时,该函数返回文件尾(
end-of-file
)值(
EOF
)。
数据竞争
修改*流缓冲区*对象。
同时访问同一*流缓冲区*对象可能会导致数据竞争。
异常安全
基本保证:
如果抛出异常,*流缓冲区*处于有效状态。
另见
streambuf::sputbackc
放回字符
(公共成员函数)
streambuf::underflow
在下溢时获取字符
(保护虚成员函数)
filebuf::pbackfail
在备用下溢时将字符放回(
受保护的虚成员函数
)
stringbuf::pbackfail
放回字符
(受保护的虚成员函数)