Definido en el archivo de encabezado <sstream>
plantilla< clase CharT, |
(hasta C++11) | |
plantilla< clase CharT, |
(desde C++11) |
Plantilla de clase std::basic_istringstream
Implementa operaciones de entrada y salida en secuencias basadas en cadenas. De manera equivalente, almacena una instancia de std::basic_string y realiza operaciones de entrada en ella.
En un nivel bajo, esta clase en realidad envuelve el dispositivo de cadena sin formato de std::basic_stringbuf en la interfaz de alto nivel de std::basic_istream. Proporciona std::basic_stringbuf
una interfaz completa para miembros exclusivos.
También se definen dos especializaciones para tipos de caracteres comunes:
tipo | definición |
istringstream |
basic_istringstream<char> |
wistringstream |
basic_istringstream<wchar_t> |
función no miembro
especialización del algoritmo std::swap
std::swap(std::basic_istringstream)
plantilla< clase CharT, clase Rasgos, clase Alloc > intercambio vacío ( std::basic_istringstream<CharT,Traits,Alloc>& lhs, std::basic_istringstream<CharT,Traits,Alloc>& rhs ); |
Especializa el algoritmo std::swap para std::basic_istringstream. Intercambia el estado de lhs
y rhs
. De manera equivalente, llame a lhs.swap(rhs).
parámetro
izquierdo, derecho | - | corriente para intercambiar estado |
valor de retorno
(ninguno)
anormal
(ninguno)
ejemplo de llamada
#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;
}
producción