blob: 7d899e776bbd0f1aa562ec687e273f01809d3239 [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_ofstream
14
15// explicit basic_ofstream(const char* s, ios_base::openmode mode = ios_base::out);
16
17#include <fstream>
18#include <cassert>
19
20int main()
21{
Alexis Hunt483cf242011-07-18 23:51:21 +000022 char temp[L_tmpnam];
23 tmpnam(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000024 {
Alexis Hunt483cf242011-07-18 23:51:21 +000025 std::ofstream fs(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000026 fs << 3.25;
27 }
28 {
Alexis Hunt483cf242011-07-18 23:51:21 +000029 std::ifstream fs(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000030 double x = 0;
31 fs >> x;
32 assert(x == 3.25);
33 }
Alexis Hunt483cf242011-07-18 23:51:21 +000034 remove(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000035 {
Alexis Hunt483cf242011-07-18 23:51:21 +000036 std::wofstream fs(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000037 fs << 3.25;
38 }
39 {
Alexis Hunt483cf242011-07-18 23:51:21 +000040 std::wifstream fs(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000041 double x = 0;
42 fs >> x;
43 assert(x == 3.25);
44 }
Alexis Hunt483cf242011-07-18 23:51:21 +000045 remove(temp);
Howard Hinnant3e519522010-05-11 19:42:16 +000046}