1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9// <fstream>
10
11// template <class charT, class traits = char_traits<charT> >
12// class basic_fstream
13
14// void open(const string& s, ios_base::openmode mode = ios_base::in|ios_base::out);
15
16#include <fstream>
17#include <cassert>
18#include "test_macros.h"
19#include "platform_support.h"
20
21int main(int, char**)
22{
23 std::string temp = get_temp_file_name();
24 {
25 std::fstream fs;
26 assert(!fs.is_open());
27 fs.open(s: temp, mode: std::ios_base::in | std::ios_base::out
28 | std::ios_base::trunc);
29 assert(fs.is_open());
30 double x = 0;
31 fs << 3.25;
32 fs.seekg(0);
33 fs >> x;
34 assert(x == 3.25);
35 }
36 std::remove(filename: temp.c_str());
37
38#ifndef TEST_HAS_NO_WIDE_CHARACTERS
39 {
40 std::wfstream fs;
41 assert(!fs.is_open());
42 fs.open(s: temp, mode: std::ios_base::in | std::ios_base::out
43 | std::ios_base::trunc);
44 assert(fs.is_open());
45 double x = 0;
46 fs << 3.25;
47 fs.seekg(0);
48 fs >> x;
49 assert(x == 3.25);
50 }
51 std::remove(filename: temp.c_str());
52#endif
53
54 return 0;
55}
56

source code of libcxx/test/std/input.output/file.streams/fstreams/fstream.members/open_string.pass.cpp