◐ Shell
clean mode source ↗

std::basic_streambuf::underflow - cppreference.com

De cppreference.com

<metanoindex/>

<tbody> </tbody>

Garante que pelo menos um caracter está disponível na área de entrada, actualizando os ponteiros para a área de entrada (se necessário). Retorna o valor de que o personagem de sucesso ou fracasso em traits::eof().

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.

A função pode atualizar gptr, egptr e eback ponteiros para definir a localização dos dados recém-carregados (se houver). Em caso de falha, a função que assegura quer gptr() == nullptr ou 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.

A versão da classe base da função não faz nada. As classes derivadas podem substituir essa função para permitir atualizações para a área get no caso de exaustão.

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.

Parâmetros

(Nenhum)

Original:

(none)

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Valor de retorno

O valor do caractere apontado pelo ponteiro' chegar após a chamada de sucesso, ou de outra forma traits::eof().

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.

A versão da classe base da função chama 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.

Nota

As funções públicas de std::streambuf chamar esta função somente se gptr() == nullptr ou 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.

Exemplo

#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);
}

Saída:

Veja também

lê caracteres da seqüência de entrada associado à área de get e avança o ponteiro seguinte

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.


(virtual protegido função de membro) [edit]

escreve caracteres para a seqüência de saída associado da área de venda

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.


(virtual protegido função de membro) [edit]