brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 61bd22b Raw
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