Я знаю об этом традиционном способе,
#include <fstream>
#include <string>
#include <cerrno>
#include <iostream>
int main()
{
std::ifstream in("file.txt", std::ios::in | std::ios::binary);
if (in)
{
std::string contents;
in.seekg(0, std::ios::end);
contents.resize((size_t)in.tellg()); // Allocate buffer
in.seekg(0, std::ios::beg);
// Read the file
in.read(&contents[0], contents.size());
// ... do something ..
// Close
in.close();
}
else
throw(errno);
}
Чтобы определить, является ли его файл ANSI или UTF-8, нужно ли мне прочитать первые три байта, чтобы проверить, соответствует ли спецификация илилучший способ C ++ 11 с использованием codecvt?Как я могу заставить этот codecvt работать на весь файл?