std::basic_streambuf::underflow
Da cppreference.com.
< cpp | io | basic streambuf
![]() |
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.
La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
int_type underflow(); |
||
Assicura che almeno un carattere è disponibile nell'area di immissione aggiornando i puntatori alla zona di ingresso (se necessario). Restituisce il valore di quel personaggio di successo, traits::eof() in caso di fallimento.
Original:
Ensures that at least one character is available in the input area by updating the pointers to the input area (if needed). Returns the value of that character on success or traits::eof() on failure.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
La funzione può aggiornare
gptr
, egptr
e eback
puntatori per definire la posizione dei dati appena caricati (se presenti). In caso di fallimento, la funzione fa sì che sia gptr() == nullptr o gptr() == egptr.Original:
The function may update
gptr
, egptr
and eback
pointers to define the location of newly loaded data (if any). On failure, the function ensures that either gptr() == nullptr or gptr() == egptr.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
La versione della classe base della funzione non fa nulla. Le classi derivate possono eseguire l'override di questa funzione per consentire gli aggiornamenti alla zona get in caso di esaurimento.
Original:
The base class version of the function does nothing. The derived classes may override this function to allow updates to the get area in the case of exhaustion.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Indice |
[modifica] Parametri
(Nessuno)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica] Valore di ritorno
Il valore del carattere a cui punta il puntatore arrivare dopo la chiamata in caso di successo, o traits::eof() altrimenti.
Original:
The value of the character pointed to by the get pointer after the call on success, or traits::eof() otherwise.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
La versione della classe base delle chiamate di funzione traits::eof().
Original:
The base class version of the function calls traits::eof().
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica] Nota
Le funzioni pubbliche di std::streambuf chiamare questa funzione solo se gptr() == nullptr o gptr() >= egptr().
Original:
The public functions of std::streambuf call this function only if gptr() == nullptr or gptr() >= egptr().
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica] Esempio
#include <iostream> #include <sstream> class null_filter_buf : public std::streambuf { std::streambuf* src; char ch; // single-byte buffer protected: int underflow() { while( (ch= src->sbumpc()) == '\0') ; // skip zeroes setg(&ch, &ch, &ch+1); // make one read position available return ch; // may return EOF } public: null_filter_buf(std::streambuf* buf) : src(buf) { setg(&ch, &ch+1, &ch+1); // buffer is initially full } }; void filtered_read(std::istream& in) { std::streambuf* orig = in.rdbuf(); null_filter_buf buf(orig); in.rdbuf(&buf); for(char c; in.get(c); ) std::cout << c; in.rdbuf(orig); } int main() { char a[] = "This i\0s \0an e\0\0\0xample"; std::istringstream in(std::string(std::begin(a), std::end(a))); filtered_read(in); }
Output:
This is an example
[modifica] Vedi anche
[virtuale] |
legge i caratteri della sequenza di input associato alla zona get e fa avanzare il puntatore successivo Original: reads characters from the associated input sequence to the get area and advances the next pointer The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (virtuale protetto funzione membro) |
[virtuale] |
scrive caratteri della sequenza di emissione associato dalla zona put Original: writes characters to the associated output sequence from the put area The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (virtuale protetto funzione membro) |