std::istrstream::istrstream
来自cppreference.com
< cpp | io | 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) | |
构造新的 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 的公开成员函数) |