Spec-Zone.ru › C++

std::istrstream::istrstream

explicit istrstream( const char* s );
(1)
explicit istrstream( char* s );
(2)
istrstream( const char* s, std::streamsize n );
(3)
istrstream( char* s, std::streamsize n );
(4)

Создаёт новый std::istrstream и его базовый std::strstreambuf.

1,2) Создаёт базовый std::strstreambuf, вызывая strstreambuf(s,0), и инициализирует базовый класс адресом strstreambuf. Поведение не определено, если s не указывает на элемент в строке с нулевым завершением.
3,4) Создаёт базовый std::strstreambuf, вызывая strstreambuf(s,n), и инициализирует базовый класс адресом strstreambuf. Поведение не определено, если s не указывает на элемент массива, длина которого не менее n элементов.

Параметры

s - Строка C или массив char, используемые в качестве содержимого потока
n - Размер массива

Пример

#include <iostream>
#include <strstream>
 
int main()
{
    std::istrstream s1("1 2 3"); // string literal
    int n1,n2,n3;
    if (s1 >> n1 >> n2 >> n3)
        std::cout << n1 << ", " << n2 << ", " << n3 << '\n';
 
    char arr[] = {'4', ' ', '5', ' ', '6'};
    std::istrstream s2(arr, sizeof arr);
    if (s2 >> n1 >> n2 >> n3)
        std::cout << n1 << ", " << n2 << ", " << n3 << '\n';
}

Вывод:

1, 2, 3
4, 5, 6

См. также

(конструктор)
создаёт объект strstreambuf
(публичный член std::strstreambuf)
(конструктор)
создаёт объект ostrstream, необязательно выделяя буфер
(публичный член std::ostrstream)
(конструктор)
создаёт объект strstream, необязательно выделяя буфер
(публичный член std::strstream)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/istrstream/istrstream

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API