Namespaces
Variants

std::basic_stringbuf<CharT,Traits,Allocator>:: setbuf

From cppreference.net
protected :
virtual std:: basic_streambuf < CharT, Traits > * setbuf ( char_type * s, std:: streamsize n )
La traduction du texte en français : **protected** : **virtual** std::basic_streambuf * setbuf(char_type* s, std::streamsize n) *Note : Les termes C++ spécifiques (protected, virtual, std::basic_streambuf, CharT, Traits, char_type, std::streamsize, setbuf) et le code ont été conservés en anglais conformément aux instructions.*

Si s est un pointeur nul et n est zéro, cette fonction n'a aucun effet.

Sinon, l'effet est défini par l'implémentation : certaines implémentations ne font rien, tandis que certaines implémentations effacent le std::string membre actuellement utilisé comme tampon et commencent à utiliser le tableau de caractères fourni par l'utilisateur de taille n , dont le premier élément est pointé par s , comme tampon et séquence de caractères d'entrée/sortie.

Cette fonction est protégée virtuelle, elle ne peut être appelée qu'à travers pubsetbuf() ou depuis les fonctions membres d'une classe définie par l'utilisateur dérivée de std::basic_stringbuf .

Table des matières

Paramètres

s - pointeur vers le premier CharT dans le tampon fourni par l'utilisateur ou null
n - nombre d'éléments CharT dans le tampon fourni par l'utilisateur ou zéro

Valeur de retour

this

Notes

Le tampon de flux obsolète std:: strstreambuf ou le périphérique boost.IOStreams boost::basic_array peut être utilisé pour implémenter la mise en mémoire tampon d'E/S sur un tableau de caractères fourni par l'utilisateur de manière portable.

Exemple

Test de la fonctionnalité setbuf du stringstream.

#include <iostream>
#include <sstream>
int main()
{
    std::ostringstream ss;
    char c[1024] = {};
    ss.rdbuf()->pubsetbuf(c, 1024);
    ss << 3.14 << '\n';
    std::cout << c << '\n';
}

Sortie :

3.14 (on GNU g++/libstdc++ and SunPro C++/roguewave)
<nothing> (on MS Visual Studio 2010, SunPro C++/stlport4, CLang++/libc++)

Voir aussi

appelle setbuf ( )
(fonction membre publique de std::basic_streambuf<CharT,Traits> )