C++ Utilities 5.11.2
Useful C++ classes and routines such as argument parser, IO and conversion utilities
misc.cpp
Go to the documentation of this file.
1#include "./misc.h"
3
4#include <streambuf>
5
6using namespace std;
7
8namespace CppUtilities {
9
16std::string readFile(const std::string &path, std::string::size_type maxSize)
17{
19 file.exceptions(ios_base::failbit | ios_base::badbit);
20 file.open(path, ios_base::in | ios_base::binary);
21 file.seekg(0, ios_base::end);
22 string res;
23 const auto size = static_cast<string::size_type>(file.tellg());
24 if (maxSize != string::npos && size > maxSize) {
25 throw ios_base::failure("File exceeds max size");
26 }
27 res.reserve(size);
28 file.seekg(ios_base::beg);
29 res.assign((istreambuf_iterator<char>(file)), istreambuf_iterator<char>());
30 return res;
31}
32
39void writeFile(std::string_view path, std::string_view contents)
40{
42 file.exceptions(ios_base::failbit | ios_base::badbit);
43 file.open(path.data(), ios_base::out | ios_base::trunc | ios_base::binary);
44 file.write(contents.data(), static_cast<std::streamoff>(contents.size()));
45 file.close();
46}
47
48} // namespace CppUtilities
Contains all utilities provides by the c++utilities library.
CPP_UTILITIES_EXPORT std::string readFile(const std::string &path, std::string::size_type maxSize=std::string::npos)
Reads all contents of the specified file in a single call.
Definition: misc.cpp:16
CPP_UTILITIES_EXPORT void writeFile(std::string_view path, std::string_view contents)
Writes all contents to the specified file in a single call.
Definition: misc.cpp:39
std::fstream NativeFileStream
STL namespace.