Files
2025-10-25 03:02:53 +03:00

46 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[fstream.syn]
# 31 Input/output library [[input.output]](./#input.output)
## 31.10 File-based streams [[file.streams]](file.streams#fstream.syn)
### 31.10.1 Header <fstream> synopsis [fstream.syn]
[🔗](#header:%3cfstream%3e)
namespace std {// [[filebuf]](filebuf "31.10.3Class template basic_­filebuf"), class template basic_filebuftemplate<class charT, class traits = char_traits<charT>>class basic_filebuf; template<class charT, class traits>void swap(basic_filebuf<charT, traits>& x, basic_filebuf<charT, traits>& y); using filebuf = basic_filebuf<char>; using wfilebuf = basic_filebuf<wchar_t>; // [[ifstream]](ifstream "31.10.4Class template basic_­ifstream"), class template basic_ifstreamtemplate<class charT, class traits = char_traits<charT>>class basic_ifstream; template<class charT, class traits>void swap(basic_ifstream<charT, traits>& x, basic_ifstream<charT, traits>& y); using ifstream = basic_ifstream<char>; using wifstream = basic_ifstream<wchar_t>; // [[ofstream]](ofstream "31.10.5Class template basic_­ofstream"), class template basic_ofstreamtemplate<class charT, class traits = char_traits<charT>>class basic_ofstream; template<class charT, class traits>void swap(basic_ofstream<charT, traits>& x, basic_ofstream<charT, traits>& y); using ofstream = basic_ofstream<char>; using wofstream = basic_ofstream<wchar_t>; // [[fstream]](fstream "31.10.6Class template basic_­fstream"), class template basic_fstreamtemplate<class charT, class traits = char_traits<charT>>class basic_fstream; template<class charT, class traits>void swap(basic_fstream<charT, traits>& x, basic_fstream<charT, traits>& y); using fstream = basic_fstream<char>; using wfstream = basic_fstream<wchar_t>;}
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L10928)
The header [<fstream>](#header:%3cfstream%3e "31.10.1Header <fstream> synopsis[fstream.syn]") defines four class templates and eight types
that associate stream buffers with files and assist
reading and writing files[.](#1.sentence-1)
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L10934)
[*Note [1](#note-1)*:
The class template basic_filebuf treats a file as a source or
sink of bytes[.](#2.sentence-1)
In an environment that uses a large character set, the file
typically holds multibyte character sequences and the basic_filebuf object converts those multibyte sequences into wide character sequences[.](#2.sentence-2)
— *end note*]
[3](#3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/iostreams.tex#L10942)
In subclause [[file.streams]](file.streams "31.10File-based streams"), member functions taking arguments of const filesystem::path::value_type* are only provided on systems where filesystem::path::value_type ([[fs.class.path]](fs.class.path "31.12.6Class path")) is not char[.](#3.sentence-1)
[*Note [2](#note-2)*:
These functions enable class path support for systems with a wide native path character type, such as wchar_t[.](#3.sentence-2)
— *end note*]