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
underflow
protected virtual member function
<fstream>
std::
basic_filebuf
::underflow
int_type underflow();
在下溢時獲取字元
返回當前輸入位置的字元,而不移動輸入位置指標。
在此之前,此函式會嘗試從關聯的檔案中讀取字元,並(如果物件維護著一個
中間緩衝區
)透過修改
內部輸入緩衝區
指標(
gptr
、
egptr
和
eback
)來提供這些字元。
如果沒有更多可用字元,並且函式未能從關聯檔案中讀取更多字元,則它會返回
檔案結束
值(
traits_type::eof()
),表示失敗。
此虛成員函式重寫了繼承自
basic_streambuf::underflow
的成員,後者在
讀指標
(
gptr
)沒有可用讀取位置時,會被諸如
sgetc
等成員呼叫以請求新字元。
此成員函式的功能類似於
uflow
,不同之處在於輸入位置不會被移動。
引數
無
返回值
受控輸入序列
當前位置的字元,使用成員
traits_type::to_int_type
轉換為
int_type
型別的值。
如果
受控輸入序列
中沒有更多字元可讀,則返回
檔案結束
值(
traits_type::eof()
)。
成員型別
int_type
是能夠表示任何字元值或特殊*檔案結束*符的整型。
資料競爭
修改
basic_filebuf
物件。
同時訪問同一個
檔案流緩衝區
物件可能導致資料爭用。
異常安全
基本保證:
如果丟擲異常,*檔案流緩衝區*處於有效狀態。
另見
basic_filebuf::uflow
在上溢時獲取字元並前進位置
(受保護的虛成員函式)
basic_streambuf::underflow
在下溢時獲取字元
(保護虛成員函式)
basic_streambuf::sgetc
獲取當前字元
(公有成員函式)