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