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>
<fstream>
类模板
basic_filebuf
basic_fstream
basic_ifstream
basic_ofstream
类
filebuf
fstream
ifstream
、ofstream
wfilebuf
wfstream
wifstream
、wofstream
basic_filebuf
basic_filebuf::~basic_filebuf
basic_filebuf::basic_filebuf
公有成员
basic_filebuf::close
basic_filebuf::is_open
basic_filebuf::open
C++11
basic_filebuf::operator=
C++11
basic_filebuf::swap
protected virtual members
basic_filebuf::imbue
basic_filebuf::overflow
basic_filebuf::pbackfail
basic_filebuf::seekoff
basic_filebuf::seekpos
basic_filebuf::setbuf
basic_filebuf::showmanyc
basic_filebuf::sync
basic_filebuf::uflow
basic_filebuf::underflow
非成员重载
C++11
swap (basic_filebuf)
参考
<fstream>
basic_filebuf
overflow
protected virtual member function
<fstream>
std::
basic_filebuf
::overflow
int_type overflow (int_type c = traits_type::eof());
将字符放入溢出
将
中间输出缓冲区
的内容写入关联的文件,然后写入
c
(除非
c
是
traits_type::eof
)。
该函数使用
codecvt::out
来转换输出的字符,并使用适当的 facet。然后,它会更新定义
中间输出缓冲区
的指针(
pptr
、
epptr
和
pbase
),以便写入文件的字符不属于它,并可能在
放置指针
(
pptr
)处提供写入位置。
如果函数无法写入字符,它将返回
文件结束
值(
traits_type::eof()
)以指示失败。
该函数被其基类的公有成员函数调用,例如
sputc
,用于放置一个字符,当
放置指针
(
pptr
)没有可用写入位置时。
此成员函数覆盖了继承的虚拟成员
basic_streambuf::overflow
。
参数
c
要放置的字符。
如果这是
文件结束
值(
traits_type::eof()
),则不放置任何字符,但会尝试执行调用此函数时的其他效果。
成员类型
int_type
是能够表示任何字符值或特殊*文件结束*符的整型。
返回值
如果成功,则返回放置的字符,该字符使用成员
traits_type::to_int_type
转换为
int_type
类型的值。
否则,它会返回
文件结束
值(
traits_type::eof()
),要么是因为
c
参数为该值,要么是为了指示失败(某些实现可能会抛出异常)。
成员类型
int_type
是能够表示任何字符值或特殊*文件结束*符的整型。
数据竞争
修改
basic_filebuf
对象。
同时访问同一个
文件流缓冲区
对象可能导致数据争用。
异常安全
基本保证:
如果抛出异常,*文件流缓冲区*处于有效状态。
另见
basic_streambuf::overflow
在上溢时放置字符
(保护虚成员函数)
basic_streambuf::sputc
放置字符并前进到下一位置
(公开成员函数)