blob: c2872913f9fbf3d9ec7c8ac25c2b8d57ac097f13 [file] [log] [blame]
Howard Hinnant3e519522010-05-11 19:42:16 +00001//===----------------------------------------------------------------------===//
2//
Howard Hinnant5b08a8a2010-05-11 21:36:01 +00003// The LLVM Compiler Infrastructure
Howard Hinnant3e519522010-05-11 19:42:16 +00004//
Howard Hinnant412dbeb2010-11-16 22:09:02 +00005// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
Howard Hinnant3e519522010-05-11 19:42:16 +00007//
8//===----------------------------------------------------------------------===//
9
10// <fstream>
11
12// template <class charT, class traits = char_traits<charT> >
13// class basic_fstream
14
15// explicit basic_fstream(const string& s, ios_base::openmode mode = ios_base::in|ios_base::out);
16
17#include <fstream>
18#include <cassert>
19
20int main()
21{
Alexis Hunt4c14ed72011-07-18 20:46:16 +000022 char temp [L_tmpnam];
23 tmpnam(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000024 {
Alexis Hunt4c14ed72011-07-18 20:46:16 +000025 std::fstream fs(std::string(temp),
Howard Hinnant3e519522010-05-11 19:42:16 +000026 std::ios_base::in | std::ios_base::out
27 | std::ios_base::trunc);
28 double x = 0;
29 fs << 3.25;
30 fs.seekg(0);
31 fs >> x;
32 assert(x == 3.25);
33 }
Alexis Hunt4c14ed72011-07-18 20:46:16 +000034 std::remove(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000035 {
Alexis Hunt4c14ed72011-07-18 20:46:16 +000036 std::wfstream fs(std::string(temp),
Howard Hinnant3e519522010-05-11 19:42:16 +000037 std::ios_base::in | std::ios_base::out
38 | std::ios_base::trunc);
39 double x = 0;
40 fs << 3.25;
41 fs.seekg(0);
42 fs >> x;
43 assert(x == 3.25);
44 }
Alexis Hunt4c14ed72011-07-18 20:46:16 +000045 std::remove(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000046}