std::istrstream:: istrstream
From cppreference.net
<
cpp
|
io
|
istrstream
|
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
)
|