1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//===----------------------------------------------------------------------===//
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//                     The LLVM Compiler Infrastructure
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// This file is dual licensed under the MIT and the University of Illinois Open
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Source Licenses. See LICENSE.TXT for details.
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//===----------------------------------------------------------------------===//
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// <strstream>
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// class ostrstream
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// ostrstream(char* s, int n, ios_base::openmode mode = ios_base::out);
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include <strstream>
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include <cassert>
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverint main()
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver{
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    {
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        char buf[] = "123 4.5 dog";
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        std::ostrstream out(buf, 0);
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        assert(out.str() == std::string("123 4.5 dog"));
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        int i = 321;
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        double d = 5.5;
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        std::string s("cat");
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        out << i << ' ' << d << ' ' << s << std::ends;
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        assert(out.str() == std::string("321 5.5 cat"));
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    {
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        char buf[23] = "123 4.5 dog";
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        std::ostrstream out(buf, 11, std::ios::app);
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        assert(out.str() == std::string("123 4.5 dog"));
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        int i = 321;
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        double d = 5.5;
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        std::string s("cat");
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        out << i << ' ' << d << ' ' << s << std::ends;
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        assert(out.str() == std::string("123 4.5 dog321 5.5 cat"));
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    }
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver