std::strstreambuf:: overflow
|
protected
:
virtual int_type overflow ( int_type c = EOF ) ; |
(obsolète en C++98)
(supprimé en C++26) |
|
Ajoute le caractère c à la zone de sortie du tampon, en réallouant si possible.
palloc
a été utilisé dans le constructeur, cette fonction est appelée avec
(
*
palloc
)
(
n
)
où
n
est le nombre d'octets à allouer, sinon
new
char
[
n
]
est utilisé. Si un pointeur vers la fonction de désallocation
pfree
a été utilisé dans le constructeur, cette fonction est appelée avec
(
*
pfree
)
(
p
)
pour désallouer le tableau précédent, si nécessaire, sinon
delete
[
]
p
est utilisé. Si l'allocation échoue, la fonction échoue et retourne
EOF
.
Table des matières |
Paramètres
| c | - | le caractère à stocker dans la zone de mise |
Valeur de retour
Si c == EOF , retourne une valeur différente de EOF . Sinon, retourne ( unsigned char ) ( c ) en cas de succès, EOF en cas d'échec.
Exemple
#include <iostream> #include <strstream> struct mybuf : std::strstreambuf { int_type overflow(int_type c) { std::cout << "Before overflow(): size of the put area is " << epptr()-pbase() << " with " << epptr()-pptr() << " write positions available\n"; int_type rc = std::strstreambuf::overflow(c); std::cout << "After overflow(): size of the put area is " << epptr()-pbase() << " with " << epptr()-pptr() << " write positions available\n"; return rc; } }; int main() { mybuf sbuf; // strstreambuf dynamique en lecture-écriture std::iostream stream(&sbuf); stream << "Sufficiently long string to overflow the initial allocation, at least " << " on some systems."; }
Sortie possible :
Before overflow(): size of the put area is 16 with 0 write positions available After overflow(): size of the put area is 32 with 15 write positions available Before overflow(): size of the put area is 32 with 0 write positions available After overflow(): size of the put area is 64 with 31 write positions available Before overflow(): size of the put area is 64 with 0 write positions available After overflow(): size of the put area is 128 with 63 write positions available
Voir aussi
|
[virtual]
|
écrit des caractères dans la séquence de sortie associée depuis la zone de mise
(fonction membre protégée virtuelle de
std::basic_streambuf<CharT,Traits>
)
|
|
[virtual]
|
ajoute un caractère à la séquence de sortie
(fonction membre protégée virtuelle de
std::basic_stringbuf<CharT,Traits,Allocator>
)
|
|
[virtual]
|
écrit des caractères dans le fichier associé depuis la zone de mise
(fonction membre protégée virtuelle de
std::basic_filebuf<CharT,Traits>
)
|
|
écrit un caractère dans la zone de mise et avance le pointeur suivant
(fonction membre publique de
std::basic_streambuf<CharT,Traits>
)
|
|
|
insère un caractère
(fonction membre publique de
std::basic_ostream<CharT,Traits>
)
|