open_string.pass.cpp revision 13aaf422e49fa4b66642966bfc6078b5d9adde12
146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner//===----------------------------------------------------------------------===// 246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// 346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// The LLVM Compiler Infrastructure 446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// 546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// This file is dual licensed under the MIT and the University of Illinois Open 646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// Source Licenses. See LICENSE.TXT for details. 746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// 846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner//===----------------------------------------------------------------------===// 946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 1046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// <fstream> 1146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 1246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// template <class charT, class traits = char_traits<charT> > 1346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// class basic_fstream 1446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 1546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner// void open(const string& s, ios_base::openmode mode = ios_base::in|ios_base::out); 1646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 1746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <fstream> 1846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <cassert> 1946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 2046be48730333120a7b939116cef075e61c12c703David 'Digit' Turnerint main() 2146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner{ 2246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner char temp[L_tmpnam]; 2346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner tmpnam(temp); 2446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner { 2546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner std::fstream fs; 2646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner assert(!fs.is_open()); 2746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner fs.open(std::string(temp), std::ios_base::in | std::ios_base::out 2846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner | std::ios_base::trunc); 2946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner assert(fs.is_open()); 3046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner double x = 0; 3146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner fs << 3.25; 3246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner fs.seekg(0); 3346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner fs >> x; 3446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner assert(x == 3.25); 3546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner } 3646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner std::remove(temp); 3746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner { 3846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner std::wfstream fs; 3946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner assert(!fs.is_open()); 4046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner fs.open(std::string(temp), std::ios_base::in | std::ios_base::out 4146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner | std::ios_base::trunc); 4246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner assert(fs.is_open()); 4346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner double x = 0; 4446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner fs << 3.25; 4546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner fs.seekg(0); 4646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner fs >> x; 4746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner assert(x == 3.25); 4846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner } 4946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner std::remove(temp); 5046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner} 5146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner