56 lines · cpp
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-exception6//7//===----------------------------------------------------------------------===//8 9// <fstream>10 11// template <class charT, class traits = char_traits<charT> >12// class basic_fstream13 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(temp, std::ios_base::in | std::ios_base::out28 | 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(temp.c_str());37 38#ifndef TEST_HAS_NO_WIDE_CHARACTERS39 {40 std::wfstream fs;41 assert(!fs.is_open());42 fs.open(temp, std::ios_base::in | std::ios_base::out43 | 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(temp.c_str());52#endif53 54 return 0;55}56