std::istrstream::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-строка или массив 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/cpp/io/istrstream/istrstream