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)
通过调用
strstreambuf
(
s,
0
)
构造底层
std::strstreambuf
,并使用
strstreambuf
的地址初始化基类。如果
s
未指向以空字符结尾的数组元素,则行为未定义。
3,4)
通过调用
strstreambuf
(
s, n
)
构造底层
std::strstreambuf
,并使用
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
的公开成员函数)
|