Select Git revision
underflow.html
underflow.html 36.07 KiB
<!DOCTYPE html>
<html lang="en" dir="ltr" class="client-nojs">
<head>
<title>std::strstreambuf::underflow - cppreference.com</title>
<meta charset="UTF-8">
<meta name="generator" content="MediaWiki 1.21.2">
<link rel="shortcut icon" href="../../../../common/favicon.ico">
<link rel="stylesheet" href="../../../../common/ext.css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" href="../../../../common/site_modules.css">
<style>a:lang(ar),a:lang(ckb),a:lang(fa),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}#toc{display:none}.editsection{display:none}
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-css:7:472787eddcf4605d11de8c7ef047234f */</style>
<script src="../../../../common/startup_scripts.js"></script>
<script>if(window.mw){
mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"cpp/io/strstreambuf/underflow","wgTitle":"cpp/io/strstreambuf/underflow","wgCurRevisionId":105241,"wgArticleId":12932,"wgIsArticle":true,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"cpp/io/strstreambuf/underflow","wgRestrictionEdit":[],"wgRestrictionMove":[]});
}</script><script>if(window.mw){
mw.loader.implement("user.options",function(){mw.user.options.set({"ccmeonemails":0,"cols":80,"date":"default","diffonly":0,"disablemail":0,"disablesuggest":0,"editfont":"default","editondblclick":0,"editsection":0,"editsectiononrightclick":0,"enotifminoredits":0,"enotifrevealaddr":0,"enotifusertalkpages":1,"enotifwatchlistpages":0,"extendwatchlist":0,"externaldiff":0,"externaleditor":0,"fancysig":0,"forceeditsummary":0,"gender":"unknown","hideminor":0,"hidepatrolled":0,"imagesize":2,"justify":0,"math":1,"minordefault":0,"newpageshidepatrolled":0,"nocache":0,"noconvertlink":0,"norollbackdiff":0,"numberheadings":0,"previewonfirst":0,"previewontop":1,"quickbar":5,"rcdays":7,"rclimit":50,"rememberpassword":0,"rows":25,"searchlimit":20,"showhiddencats":0,"showjumplinks":1,"shownumberswatching":1,"showtoc":0,"showtoolbar":1,"skin":"cppreference2","stubthreshold":0,"thumbsize":2,"underline":2,"uselivepreview":0,"usenewrc":0,"watchcreations":0,"watchdefault":0,"watchdeletion":0,
"watchlistdays":3,"watchlisthideanons":0,"watchlisthidebots":0,"watchlisthideliu":0,"watchlisthideminor":0,"watchlisthideown":0,"watchlisthidepatrolled":0,"watchmoves":0,"wllimit":250,"variant":"en","language":"en","searchNs0":true,"searchNs1":false,"searchNs2":false,"searchNs3":false,"searchNs4":false,"searchNs5":false,"searchNs6":false,"searchNs7":false,"searchNs8":false,"searchNs9":false,"searchNs10":false,"searchNs11":false,"searchNs12":false,"searchNs13":false,"searchNs14":false,"searchNs15":false,"gadget-ColiruCompiler":1,"gadget-MathJax":1});;},{},{});mw.loader.implement("user.tokens",function(){mw.user.tokens.set({"editToken":"+\\","patrolToken":false,"watchToken":false});;},{},{});
/* cache key: mwiki1-mwiki_en_:resourceloader:filter:minify-js:7:9f05c6caceb9bb1a482b6cebd4c5a330 */
}</script>
<script>if(window.mw){
mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","mediawiki.legacy.ajax"]);
}</script>
<style type="text/css">/*<![CDATA[*/
.source-cpp {line-height: normal;}
.source-cpp li, .source-cpp pre {
line-height: normal; border: 0px none white;
}
/**
* GeSHi Dynamically Generated Stylesheet
* --------------------------------------
* Dynamically generated stylesheet for cpp
* CSS class: source-cpp, CSS id:
* GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
* (http://qbnz.com/highlighter/ and http://geshi.org/)
* --------------------------------------
*/
.cpp.source-cpp .de1, .cpp.source-cpp .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}
.cpp.source-cpp {font-family:monospace;}
.cpp.source-cpp .imp {font-weight: bold; color: red;}
.cpp.source-cpp li, .cpp.source-cpp .li1 {font-weight: normal; vertical-align:top;}
.cpp.source-cpp .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}
.cpp.source-cpp .li2 {font-weight: bold; vertical-align:top;}
.cpp.source-cpp .kw1 {color: #0000dd;}
.cpp.source-cpp .kw2 {color: #0000ff;}
.cpp.source-cpp .kw3 {color: #0000dd;}
.cpp.source-cpp .kw4 {color: #0000ff;}
.cpp.source-cpp .co1 {color: #909090;}
.cpp.source-cpp .co2 {color: #339900;}
.cpp.source-cpp .coMULTI {color: #ff0000; font-style: italic;}
.cpp.source-cpp .es0 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es1 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es2 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es3 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es4 {color: #008000; font-weight: bold;}
.cpp.source-cpp .es5 {color: #008000; font-weight: bold;}
.cpp.source-cpp .br0 {color: #008000;}
.cpp.source-cpp .sy0 {color: #008000;}
.cpp.source-cpp .sy1 {color: #000080;}
.cpp.source-cpp .sy2 {color: #000040;}
.cpp.source-cpp .sy3 {color: #000040;}
.cpp.source-cpp .sy4 {color: #008080;}
.cpp.source-cpp .st0 {color: #008000;}
.cpp.source-cpp .nu0 {color: #000080;}
.cpp.source-cpp .nu6 {color: #000080;}
.cpp.source-cpp .nu8 {color: #000080;}
.cpp.source-cpp .nu12 {color: #000080;}
.cpp.source-cpp .nu16 {color:#000080;}
.cpp.source-cpp .nu17 {color:#000080;}
.cpp.source-cpp .nu18 {color:#000080;}
.cpp.source-cpp .nu19 {color:#000080;}
.cpp.source-cpp .ln-xtra, .cpp.source-cpp li.ln-xtra, .cpp.source-cpp div.ln-xtra {background-color: #ffc;}
.cpp.source-cpp span.xtra { display:block; }
/*]]>*/
</style><style type="text/css">/*<![CDATA[*/
.source-text {line-height: normal;}
.source-text li, .source-text pre {
line-height: normal; border: 0px none white;
}
/**
* GeSHi Dynamically Generated Stylesheet
* --------------------------------------
* Dynamically generated stylesheet for text
* CSS class: source-text, CSS id:
* GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann
* (http://qbnz.com/highlighter/ and http://geshi.org/)
* --------------------------------------
*/
.text.source-text .de1, .text.source-text .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;}
.text.source-text {font-family:monospace;}
.text.source-text .imp {font-weight: bold; color: red;}
.text.source-text li, .text.source-text .li1 {font-weight: normal; vertical-align:top;}
.text.source-text .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}
.text.source-text .li2 {font-weight: bold; vertical-align:top;}
.text.source-text .ln-xtra, .text.source-text li.ln-xtra, .text.source-text div.ln-xtra {background-color: #ffc;}
.text.source-text span.xtra { display:block; }
/*]]>*/
</style><!--[if lt IE 7]><style type="text/css">body{behavior:url("/mwiki/skins/cppreference2/csshover.min.htc")}</style><![endif]--></head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_io_strstreambuf_underflow skin-cppreference2 action-view cpp-navbar">
<!-- header -->
<!-- /header -->
<!-- content -->
<div id="cpp-content-base">
<div id="content">
<a id="top"></a>
<div id="mw-js-message" style="display:none;"></div>
<!-- firstHeading -->
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">std::strstreambuf::</span>underflow</h1>
<!-- /firstHeading -->
<!-- bodyContent -->
<div id="bodyContent">
<!-- tagline -->
<div id="siteSub">From cppreference.com</div>
<!-- /tagline -->
<!-- subtitle -->
<div id="contentSub"><span class="subpages">< <a href="../../../cpp.html" title="cpp">cpp</a> | <a href="../../io.html" title="cpp/io">io</a> | <a href="../strstreambuf.html" title="cpp/io/strstreambuf">strstreambuf</a></span></div>
<!-- /subtitle -->
<!-- bodycontent -->
<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div class="t-navbar" style=""><div class="t-navbar-sep"> </div><div class="t-navbar-head"><a href="../../../cpp.html" title="cpp"> C++</a><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="line-height:1.1em;">
<tr class="t-nv"><td colspan="5"> <a href="../../language.html" title="cpp/language"> Language</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../header.html" title="cpp/header"> Standard Library Headers</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../freestanding.html" title="cpp/freestanding"> Freestanding and hosted implementations</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../named_req.html" title="cpp/named req"> Named requirements </a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../utility.html#Language_support" title="cpp/utility"> Language support library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../concepts.html" title="cpp/concepts"> Concepts library</a> <span class="t-mark-rev t-since-cxx20">(C++20)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../error.html" title="cpp/error"> Diagnostics library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../utility.html" title="cpp/utility"> Utilities library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../string.html" title="cpp/string"> Strings library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../container.html" title="cpp/container"> Containers library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../iterator.html" title="cpp/iterator"> Iterators library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../ranges.html" title="cpp/ranges"> Ranges library</a> <span class="t-mark-rev t-since-cxx20">(C++20)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../algorithm.html" title="cpp/algorithm"> Algorithms library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../numeric.html" title="cpp/numeric"> Numerics library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../io.html" title="cpp/io"> Input/output library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../locale.html" title="cpp/locale"> Localizations library</a> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../regex.html" title="cpp/regex"> Regular expressions library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../atomic.html" title="cpp/atomic"> Atomic operations library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../thread.html" title="cpp/thread"> Thread support library</a> <span class="t-mark-rev t-since-cxx11">(C++11)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../filesystem.html" title="cpp/filesystem"> Filesystem library</a> <span class="t-mark-rev t-since-cxx17">(C++17)</span> </td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../../experimental.html" title="cpp/experimental"> Technical Specifications</a> </td></tr>
</table></div><div></div></div></div></div><div class="t-navbar-sep"> </div><div class="t-navbar-head"><a href="../../io.html" title="cpp/io"> Input/output library</a><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv"><td colspan="5"> <a href="../manip.html" title="cpp/io/manip"> I/O manipulators</a></td></tr>
<tr class="t-nv"><td colspan="5"> <a href="../c.html" title="cpp/io/c"> C-style I/O</a></td></tr>
<tr class="t-nv-h1"><td colspan="5"> Buffers </td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_streambuf.html" title="cpp/io/basic streambuf"><span class="t-lines"><span>basic_streambuf</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_filebuf.html" title="cpp/io/basic filebuf"><span class="t-lines"><span>basic_filebuf</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_stringbuf.html" title="cpp/io/basic stringbuf"><span class="t-lines"><span>basic_stringbuf</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../strstreambuf.html" title="cpp/io/strstreambuf"><span class="t-lines"><span>strstreambuf</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx98">(deprecated in C++98)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_syncbuf.html" title="cpp/io/basic syncbuf"><span class="t-lines"><span>basic_syncbuf</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv-h1"><td colspan="5"> Streams </td></tr>
<tr class="t-nv-h2"><td colspan="5"> Abstractions </td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../ios_base.html" title="cpp/io/ios base"><span class="t-lines"><span>ios_base</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_ios.html" title="cpp/io/basic ios"><span class="t-lines"><span>basic_ios</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_istream.html" title="cpp/io/basic istream"><span class="t-lines"><span>basic_istream</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_ostream.html" title="cpp/io/basic ostream"><span class="t-lines"><span>basic_ostream</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_iostream.html" title="cpp/io/basic iostream"><span class="t-lines"><span>basic_iostream</span></span></a></div></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> File I/O </td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_ifstream.html" title="cpp/io/basic ifstream"><span class="t-lines"><span>basic_ifstream</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_ofstream.html" title="cpp/io/basic ofstream"><span class="t-lines"><span>basic_ofstream</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_fstream.html" title="cpp/io/basic fstream"><span class="t-lines"><span>basic_fstream</span></span></a></div></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> String I/O </td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_istringstream.html" title="cpp/io/basic istringstream"><span class="t-lines"><span>basic_istringstream</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_ostringstream.html" title="cpp/io/basic ostringstream"><span class="t-lines"><span>basic_ostringstream</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_stringstream.html" title="cpp/io/basic stringstream"><span class="t-lines"><span>basic_stringstream</span></span></a></div></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> Array I/O </td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../istrstream.html" title="cpp/io/istrstream"><span class="t-lines"><span>istrstream</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx98">(deprecated in C++98)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../ostrstream.html" title="cpp/io/ostrstream"><span class="t-lines"><span>ostrstream</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx98">(deprecated in C++98)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../strstream.html" title="cpp/io/strstream"><span class="t-lines"><span>strstream</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-deprecated-cxx98">(deprecated in C++98)</span></span></span></div></div></td></tr>
<tr class="t-nv-h2"><td colspan="5"> Synchronized Output</td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../basic_osyncstream.html" title="cpp/io/basic osyncstream"><span class="t-lines"><span>basic_osyncstream</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div></div></td></tr>
<tr class="t-nv-h1"><td colspan="5"> Types </td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../streamoff.html" title="cpp/io/streamoff"><span class="t-lines"><span>streamoff</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../streamsize.html" title="cpp/io/streamsize"><span class="t-lines"><span>streamsize</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../fpos.html" title="cpp/io/fpos"><span class="t-lines"><span>fpos</span></span></a></div></div></td></tr>
<tr class="t-nv-h1"><td colspan="5"> Error category interface </td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../iostream_category.html" title="cpp/io/iostream category"><span class="t-lines"><span>iostream_category</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="../io_errc.html" title="cpp/io/io errc"><span class="t-lines"><span>io_errc</span></span></a></div><div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div></div></td></tr>
</table></div><div></div></div></div></div><div class="t-navbar-sep"> </div><div class="t-navbar-head"><a href="../strstreambuf.html" title="cpp/io/strstreambuf"><tt>std::strstreambuf</tt></a><div class="t-navbar-menu"><div><div><table class="t-nv-begin" cellpadding="0" style="">
<tr class="t-nv-h1"><td colspan="5"> Public member functions</td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="strstreambuf.html" title="cpp/io/strstreambuf/strstreambuf"><span class="t-lines"><span>strstreambuf::strstreambuf</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="%7Estrstreambuf.html" title="cpp/io/strstreambuf/~strstreambuf"><span class="t-lines"><span>strstreambuf::~strstreambuf</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="freeze.html" title="cpp/io/strstreambuf/freeze"><span class="t-lines"><span>strstreambuf::freeze</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="str.html" title="cpp/io/strstreambuf/str"><span class="t-lines"><span>strstreambuf::str</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="pcount.html" title="cpp/io/strstreambuf/pcount"><span class="t-lines"><span>strstreambuf::pcount</span></span></a></div></div></td></tr>
<tr class="t-nv-h1"><td colspan="5"> Protected member functions</td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><strong class="selflink"><span class="t-lines"><span>strstreambuf::underflow</span></span></strong></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="pbackfail.html" title="cpp/io/strstreambuf/pbackfail"><span class="t-lines"><span>strstreambuf::pbackfail</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="overflow.html" title="cpp/io/strstreambuf/overflow"><span class="t-lines"><span>strstreambuf::overflow</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="setbuf.html" title="cpp/io/strstreambuf/setbuf"><span class="t-lines"><span>strstreambuf::setbuf</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="seekoff.html" title="cpp/io/strstreambuf/seekoff"><span class="t-lines"><span>strstreambuf::seekoff</span></span></a></div></div></td></tr>
<tr class="t-nv"><td colspan="5"><div class="t-nv-ln-table"><div><a href="seekpos.html" title="cpp/io/strstreambuf/seekpos"><span class="t-lines"><span>strstreambuf::seekpos</span></span></a></div></div></td></tr>
</table></div><div></div></div></div></div><div class="t-navbar-sep"> </div></div>
<table class="t-dcl-begin"><tbody>
<tr class="t-dcl">
<td class="t-dcl-nopad"> <div><span class="mw-geshi cpp source-cpp"><span class="kw1">protected</span><span class="sy4">:</span><br>
<span class="kw1">virtual</span> int_type underflow<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span></span></div></td>
<td class="t-dcl-nopad"> </td>
<td class="t-dcl-nopad"> </td>
</tr>
<tr class="t-dcl-sep"><td></td><td></td><td></td></tr>
</tbody></table>
<p>Reads the next character from the get area of the buffer.
</p><p>If the input sequence has a read position available (<span class="t-c"><span class="mw-geshi cpp source-cpp">gptr<span class="br0">(</span><span class="br0">)</span> <span class="sy1"><</span> egptr<span class="br0">(</span><span class="br0">)</span></span></span>, returns <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">(</span><span class="kw4">unsigned</span> <span class="kw4">char</span><span class="br0">)</span><span class="br0">(</span><span class="sy2">*</span>gptr<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span></span></span>.
</p><p>Otherwise, if <span class="t-lc"><a href="../basic_streambuf/pptr.html" title="cpp/io/basic streambuf/pptr">pptr()</a></span> is not null and <span class="t-c"><span class="mw-geshi cpp source-cpp">pptr<span class="br0">(</span><span class="br0">)</span> <span class="sy1">></span> egptr<span class="br0">(</span><span class="br0">)</span></span></span> (there is a put area and it is located after the get area), extends the end of the get area to include the characters that were recently written into the put area by incrementing <span class="t-lc"><a href="../basic_streambuf/gptr.html" title="cpp/io/basic streambuf/gptr">egptr()</a></span> to some value between <span class="t-c"><span class="mw-geshi cpp source-cpp">gptr<span class="br0">(</span><span class="br0">)</span></span></span> and <span class="t-lc"><a href="../basic_streambuf/pptr.html" title="cpp/io/basic streambuf/pptr">pptr()</a></span>, and then returns <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">(</span><span class="kw4">unsigned</span> <span class="kw4">char</span><span class="br0">)</span><span class="br0">(</span><span class="sy2">*</span>gptr<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span></span></span>.
</p><p>Otherwise, returns <span class="t-lc"><a href="../c.html" title="cpp/io/c">EOF</a></span> to indicate failure.
</p>
<h3><span class="mw-headline" id="Parameters">Parameters</span></h3>
<p>(none)
</p>
<h3><span class="mw-headline" id="Return_value">Return value</span></h3>
<p>The next character in the get area, <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">(</span><span class="kw4">unsigned</span> <span class="kw4">char</span><span class="br0">)</span><span class="br0">(</span><span class="sy2">*</span>gptr<span class="br0">(</span><span class="br0">)</span><span class="br0">)</span></span></span> on success, <span class="t-lc"><a href="../c.html" title="cpp/io/c">EOF</a></span> on failure
</p>
<h3><span class="mw-headline" id="Example">Example</span></h3>
<div class="t-example"><div class="t-example-live-link"><div class="coliru-btn coliru-btn-run-init">Run this code</div></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;"><div class="cpp source-cpp"><pre class="de1"><span class="co2">#include <strstream></span>
<span class="co2">#include <iostream></span>
<span class="kw1">struct</span> mybuf <span class="sy4">:</span> <a href="../strstreambuf.html"><span class="kw1749">std::<span class="me2">strstreambuf</span></span></a>
<span class="br0">{</span>
int_type overflow<span class="br0">(</span>int_type c<span class="br0">)</span>
<span class="br0">{</span>
<a href="../cout.html"><span class="kw1755">std::<span class="me2">cout</span></span></a> <span class="sy1"><<</span> <span class="st0">"Before overflow(): size of the get area is "</span> <span class="sy1"><<</span> egptr<span class="br0">(</span><span class="br0">)</span><span class="sy2">-</span>eback<span class="br0">(</span><span class="br0">)</span>
<span class="sy1"><<</span> <span class="st0">" size of the put area is "</span> <span class="sy1"><<</span> epptr<span class="br0">(</span><span class="br0">)</span><span class="sy2">-</span>pbase<span class="br0">(</span><span class="br0">)</span> <span class="sy1"><<</span> <span class="st0">'<span class="es1">\n</span>'</span><span class="sy4">;</span>
int_type rc <span class="sy1">=</span> std<span class="sy4">::</span><span class="me2">strstreambuf</span><span class="sy4">::</span><span class="me2">overflow</span><span class="br0">(</span>c<span class="br0">)</span><span class="sy4">;</span>
<a href="../cout.html"><span class="kw1755">std::<span class="me2">cout</span></span></a> <span class="sy1"><<</span> <span class="st0">"After overflow(): size of the get area is "</span> <span class="sy1"><<</span> egptr<span class="br0">(</span><span class="br0">)</span><span class="sy2">-</span>eback<span class="br0">(</span><span class="br0">)</span>
<span class="sy1"><<</span> <span class="st0">" size of the put area is "</span> <span class="sy1"><<</span> epptr<span class="br0">(</span><span class="br0">)</span><span class="sy2">-</span>pbase<span class="br0">(</span><span class="br0">)</span> <span class="sy1"><<</span> <span class="st0">'<span class="es1">\n</span>'</span><span class="sy4">;</span>
<span class="kw1">return</span> rc<span class="sy4">;</span>
<span class="br0">}</span>
int_type underflow<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<a href="../cout.html"><span class="kw1755">std::<span class="me2">cout</span></span></a> <span class="sy1"><<</span> <span class="st0">"Before underflow(): size of the get area is "</span> <span class="sy1"><<</span> egptr<span class="br0">(</span><span class="br0">)</span><span class="sy2">-</span>eback<span class="br0">(</span><span class="br0">)</span>
<span class="sy1"><<</span> <span class="st0">" size of the put area is "</span> <span class="sy1"><<</span> epptr<span class="br0">(</span><span class="br0">)</span><span class="sy2">-</span>pbase<span class="br0">(</span><span class="br0">)</span> <span class="sy1"><<</span> <span class="st0">'<span class="es1">\n</span>'</span><span class="sy4">;</span>
int_type ch <span class="sy1">=</span> std<span class="sy4">::</span><span class="me2">strstreambuf</span><span class="sy4">::</span><span class="me2">underflow</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
<a href="../cout.html"><span class="kw1755">std::<span class="me2">cout</span></span></a> <span class="sy1"><<</span> <span class="st0">"After underflow(): size of the get area is "</span> <span class="sy1"><<</span> egptr<span class="br0">(</span><span class="br0">)</span><span class="sy2">-</span>eback<span class="br0">(</span><span class="br0">)</span>
<span class="sy1"><<</span> <span class="st0">" size of the put area is "</span> <span class="sy1"><<</span> epptr<span class="br0">(</span><span class="br0">)</span><span class="sy2">-</span>pbase<span class="br0">(</span><span class="br0">)</span> <span class="sy1"><<</span> <span class="st0">'<span class="es1">\n</span>'</span><span class="sy4">;</span>
<span class="kw1">if</span> <span class="br0">(</span>ch <span class="sy1">==</span> <a href="../c.html"><span class="kw1879">EOF</span></a><span class="br0">)</span> <span class="br0">{</span>
<a href="../cout.html"><span class="kw1755">std::<span class="me2">cout</span></span></a> <span class="sy1"><<</span> <span class="st0">"underflow() returns EOF<span class="es1">\n</span>"</span><span class="sy4">;</span>
<span class="br0">}</span> <span class="kw1">else</span> <span class="br0">{</span>
<a href="../cout.html"><span class="kw1755">std::<span class="me2">cout</span></span></a> <span class="sy1"><<</span> <span class="st0">"underflow() returns '"</span> <span class="sy1"><<</span> <span class="kw4">char</span><span class="br0">(</span>ch<span class="br0">)</span> <span class="sy1"><<</span> <span class="st0">"'<span class="es1">\n</span>"</span><span class="sy4">;</span>
<span class="br0">}</span>
<span class="kw1">return</span> ch<span class="sy4">;</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
mybuf sbuf<span class="sy4">;</span> <span class="co1">// read-write dynamic strstreambuf</span>
<a href="../basic_iostream.html"><span class="kw1728">std::<span class="me2">iostream</span></span></a> stream<span class="br0">(</span><span class="sy3">&</span>sbuf<span class="br0">)</span><span class="sy4">;</span>
<span class="kw4">int</span> n<span class="sy4">;</span>
stream <span class="sy1">>></span> n<span class="sy4">;</span>
stream.<span class="me1">clear</span><span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span>
stream <span class="sy1"><<</span> <span class="st0">"123"</span><span class="sy4">;</span>
stream <span class="sy1">>></span> n<span class="sy4">;</span>
<a href="../cout.html"><span class="kw1755">std::<span class="me2">cout</span></span></a> <span class="sy1"><<</span> n <span class="sy1"><<</span> <span class="st0">'<span class="es1">\n</span>'</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div></div>
<p>Possible output:
</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;"><div class="text source-text"><pre class="de1">Before underflow(): size of the get area is 0 size of the put area is 0
After underflow(): size of the get area is 0 size of the put area is 0
underflow() returns EOF
Before overflow(): size of the get area is 0 size of the put area is 0
After overflow(): size of the get area is 0 size of the put area is 32
Before underflow(): size of the get area is 0 size of the put area is 32
After underflow(): size of the get area is 3 size of the put area is 32
underflow() returns '1'
Before underflow(): size of the get area is 3 size of the put area is 32
After underflow(): size of the get area is 3 size of the put area is 32
underflow() returns EOF
123</pre></div></div>
</div>
<h3><span class="mw-headline" id="See_also">See also</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td> <div class="t-dsc-member-div"><div><a href="../basic_streambuf/underflow.html" title="cpp/io/basic streambuf/underflow"> <span class="t-lines"><span>underflow</span></span></a></div><div><span class="t-lines"><span><span class="t-cmark">[virtual]</span></span></span></div></div>
</td>
<td> reads characters from the associated input sequence to the get area <br> <span class="t-mark">(virtual protected member function of <code>std::basic_streambuf<CharT,Traits></code>)</span> </td></tr>
<tr class="t-dsc">
<td> <div class="t-dsc-member-div"><div><a href="../basic_stringbuf/underflow.html" title="cpp/io/basic stringbuf/underflow"> <span class="t-lines"><span>underflow</span></span></a></div><div><span class="t-lines"><span><span class="t-cmark">[virtual]</span></span></span></div></div>
</td>
<td> returns the next character available in the input sequence <br> <span class="t-mark">(virtual protected member function of <code>std::basic_stringbuf<CharT,Traits,Allocator></code>)</span> </td></tr>
<tr class="t-dsc">
<td> <div class="t-dsc-member-div"><div><a href="../basic_filebuf/underflow.html" title="cpp/io/basic filebuf/underflow"> <span class="t-lines"><span>underflow</span></span></a></div><div><span class="t-lines"><span><span class="t-cmark">[virtual]</span></span></span></div></div>
</td>
<td> reads from the associated file <br> <span class="t-mark">(virtual protected member function of <code>std::basic_filebuf<CharT,Traits></code>)</span> </td></tr>
<tr class="t-dsc">
<td> <div class="t-dsc-member-div"><div><a href="../basic_streambuf/sgetc.html" title="cpp/io/basic streambuf/sgetc"> <span class="t-lines"><span>sgetc</span></span></a></div></div>
</td>
<td> reads one character from the input sequence without advancing the sequence <br> <span class="t-mark">(public member function of <code>std::basic_streambuf<CharT,Traits></code>)</span> </td></tr>
<tr class="t-dsc">
<td> <div class="t-dsc-member-div"><div><a href="../basic_istream/get.html" title="cpp/io/basic istream/get"> <span class="t-lines"><span>get</span></span></a></div></div>
</td>
<td> extracts characters <br> <span class="t-mark">(public member function of <code>std::basic_istream<CharT,Traits></code>)</span> </td></tr>
</table>
<!--
NewPP limit report
Preprocessor visited node count: 4370/1000000
Preprocessor generated node count: 9051/1000000
Post‐expand include size: 114667/2097152 bytes
Template argument size: 26375/2097152 bytes
Highest expansion depth: 32/40
Expensive parser function count: 0/100
-->
<!-- Saved in parser cache with key mwiki1-mwiki_en_:pcache:idhash:12932-0!*!0!!en!*!* and timestamp 20190601211631 -->
</div> <!-- /bodycontent -->
<!-- printfooter -->
<div class="printfooter">
Retrieved from "<a href="https://en.cppreference.com/mwiki/index.php?title=cpp/io/strstreambuf/underflow&oldid=105241">https://en.cppreference.com/mwiki/index.php?title=cpp/io/strstreambuf/underflow&oldid=105241</a>" </div>
<!-- /printfooter -->
<!-- catlinks -->
<!-- /catlinks -->
<div class="visualClear"></div>
<!-- debughtml -->
<!-- /debughtml -->
</div>
<!-- /bodyContent -->
</div>
</div>
<!-- /content -->
<!-- footer -->
<!-- /footer -->
<script>if(window.mw){
mw.loader.state({"site":"loading","user":"missing","user.groups":"ready"});
}</script>
<script src="../../../../common/skin_scripts.js"></script>
<script>if(window.mw){
mw.loader.load(["mediawiki.action.view.postEdit","mediawiki.user","mediawiki.page.ready","mediawiki.searchSuggest","mediawiki.hidpi","ext.gadget.ColiruCompiler","ext.gadget.MathJax"], null, true);
}</script>
<script src="../../../../common/site_scripts.js"></script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-2828341-1']);
_gaq.push(['_setDomainName', 'cppreference.com']);
_gaq.push(['_trackPageview']);
</script><!-- Served in 1.109 secs. -->
</body>
<!-- Cached 20190601211631 -->
</html>