std::basic_streambuf::setg
De cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
<metanoindex/>
<tbody> </tbody> void setg( char_type* gbeg, char_type* gcurr, char_type* gend ); |
||
Define os valores dos ponteiros definindo a área get. Especificamente, após a chamada
eback() == gbeg, gptr() == gcurr, egptr() == gendOriginal:
Sets the values of the pointers defining the get area. Specifically, after the call
eback() == gbeg, gptr() == gcurr, egptr() == gendThe 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.
Parâmetros
| gbeg | - | ponteiro para o novo começo da área get
Original: pointer to the new beginning of the get area The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| gcurr | - | ponteiro para o novo personagem atual (' ponteiro chegar) na área get
Original: pointer to the new current character (get pointer) in the get area The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
| gend | - | ponteiro para o novo fim da área de get
Original: pointer to the new end of the get area 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
(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.
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:
This is an example
Veja também
reposiciona ponteiros o início, ao lado, e no fim da seqüência de saída Original: repositions the beginning, next, and end pointers of the output sequence The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (protegido função de membro) | |