# std::istrstream::istrstream

From 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) |

Constructs new istrstream and its underlying std::strstreambuf.

1,2) Constructs the underlying std::strstreambuf by calling strstreambuf(s,0) and initializes the base class with the address of the strstreambuf. The behavior is undefined if `s` is not pointing at an element of a null-terminated array.
3,4) Constructs the underlying std::strstreambuf by calling strstreambuf(s,n) and initializes the base class with the address of the strstreambuf. The behavior is undefined if `s` is not pointing at an element of an array whose length is at least `n` elements.

### Parameters

s | - | C-string or char array to use as the contents of the stream
n | - | size of the array

### Example

Run this code

    #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';
    }

Output:

    1, 2, 3
    4, 5, 6

### See also

(constructor) | constructs a strstreambuf object (public member function of `std::strstreambuf`)
(constructor) | constructs an strstream, optionally allocating the buffer (public member function of `std::ostrstream`)
(constructor) | constructs an strstream, optionally allocating the buffer (public member function of `std::strstream`)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/istrstream/istrstream&oldid=105225"