std::istrstream::istrstream
来自cppreference.com
| |
(1) | (C++98 弃用) (C++26 移除) |
| |
(2) | (C++98 弃用) (C++26 移除) |
| |
(3) | (C++98 弃用) (C++26 移除) |
| |
(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 的公开成员函数) |