64 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_ofstream13 14// void open(const string& s, ios_base::openmode mode = 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::ofstream fs;26 assert(!fs.is_open());27 char c = 'a';28 fs << c;29 assert(fs.fail());30 fs.open(temp);31 assert(fs.is_open());32 fs << c;33 }34 {35 std::ifstream fs(temp.c_str());36 char c = 0;37 fs >> c;38 assert(c == 'a');39 }40 std::remove(temp.c_str());41 42#ifndef TEST_HAS_NO_WIDE_CHARACTERS43 {44 std::wofstream fs;45 assert(!fs.is_open());46 wchar_t c = L'a';47 fs << c;48 assert(fs.fail());49 fs.open(temp);50 assert(fs.is_open());51 fs << c;52 }53 {54 std::wifstream fs(temp.c_str());55 wchar_t c = 0;56 fs >> c;57 assert(c == L'a');58 }59 std::remove(temp.c_str());60#endif61 62 return 0;63}64