C++11-Standardvorlage (STL) (std::basic_istringstream) (5)

Definiert in der Header-Datei <sstream>
Vorlage<

    Klasse CharT,
    Klasse Traits = std::char_traits<CharT>

> Klasse basic_istringstream;
(bis C++11)
Vorlage<

    Klasse CharT,
    Klasse Traits = std::char_traits<CharT>,
    Klasse Allocator = std::allocator<CharT>

> Klasse basic_istringstream;
(seit C++11)

Klassenvorlage std::basic_istringstreamImplementiert Eingabe- und Ausgabevorgänge für stringbasierte Streams. Es speichert äquivalent eine Instanz von std::basic_string und führt Eingabeoperationen darauf aus.

Auf einer niedrigen Ebene verpackt diese Klasse tatsächlich das Rohzeichenfolgengerät von std::basic_stringbuf in die Schnittstelle auf hoher Ebene von std::basic_istream. Bietet std::basic_stringbufeine vollständige Schnittstelle für exklusive Mitglieder.

 Außerdem sind zwei Spezialisierungen für gängige Zeichentypen definiert:

Typ Definition
istringstream basic_istringstream<char>
wistringstream basic_istringstream<wchar_t>

Nichtmitgliedsfunktion

Spezialisierung des std::swap-Algorithmus

std::swap(std::basic_istringstream)
Vorlage< Klasse CharT, Klasse Traits, Klasse Alloc >

void swap( std::basic_istringstream<CharT,Traits,Alloc>& lhs,

           std::basic_istringstream<CharT,Traits,Alloc>& rhs );

Spezialisiert den std::swap-Algorithmus für std::basic_istringstream. Tauschen Sie den Status von lhsund aus rhs. Rufen Sie entsprechend lhs.swap(rhs) auf.

Parameter

links, rechts - Stream zum Austauschstatus

Rückgabewert

(keiner)

abnormal

(keiner)

Anrufbeispiel

#include <sstream>
#include <string>
#include <iostream>

int main()
{
    //3) 以 str 的副本为底层字符串设备的初始内容。
    std::string string1 = "I am a handsome programmer";
    std::basic_istringstream<char> basic_istringstream1(string1, std::ios_base::in);
    std::cout << "basic_istringstream1: " << basic_istringstream1.str() << std::endl;
    std::cout << "basic_istringstream1 rdstate: ";
    std::cout << basic_istringstream1.rdstate() << std::endl;

    std::string string2 = "I am a super handsome guy";
    std::basic_istringstream<char> basic_istringstream2(string2, std::ios_base::in);
    std::cout << "basic_istringstream2: " << basic_istringstream2.str() << std::endl;
    basic_istringstream2.setstate(std::ios_base::badbit);
    std::cout << "basic_istringstream2 rdstate: ";
    std::cout << basic_istringstream2.rdstate() << std::endl;
    std::cout << std::endl;

    //为 std::basic_istringstream 特化 std::swap 算法。
    //交换 lhs 与 rhs 的状态。等效地调用 lhs.swap(rhs)
    std::swap(basic_istringstream1, basic_istringstream2);
    std::cout << "after swap: " << std::endl;

    basic_istringstream1.seekg(std::ios_base::beg);
    std::cout << "basic_istringstream1: " << basic_istringstream1.str() << std::endl;
    std::cout << "basic_istringstream1 rdstate: ";
    std::cout << basic_istringstream1.rdstate() << std::endl;

    basic_istringstream2.seekg(std::ios_base::beg);
    std::cout << "basic_istringstream2: " << basic_istringstream2.str() << std::endl;
    std::cout << "basic_istringstream2 rdstate: ";
    std::cout << basic_istringstream2.rdstate() << std::endl;

    return 0;
}

Ausgabe

 

Guess you like

Origin blog.csdn.net/qq_40788199/article/details/132398324