Namespaces
Variants

std::istrstream:: istrstream

From cppreference.net
explicit istrstream ( const char * s ) ;
(1) (устарело в C++98)
(удалено в C++26)
explicit istrstream ( char * s ) ;
(2) (устарело в C++98)
(удалено в C++26)
istrstream ( const char * s, std:: streamsize n ) ;
(3) (устарело в C++98)
(удалено в C++26)
istrstream ( char * s, std:: streamsize n ) ;
(4) (устарело в C++98)
(удалено в C++26)

Создает новый 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-строка или массив символов для использования в качестве содержимого потока
n - размер массива

Пример

#include <iostream>
#include <strstream>
int main()
{
    std::istrstream s1("1 2 3"); // строковый литерал
    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 )