¿Por qué el flujo de archivos ancho en C ++ limita los datos escritos de forma predeterminada?
Honestamente, no obtengo la siguiente decisión de diseño en la biblioteca estándar de C ++. Al escribir caracteres anchos en un archivo, elwofstream
conversoswchar_t
dentrochar
caracteres:
#include <fstream>
#include <string>
int main()
{
using namespace std;
wstring someString = L"Hello StackOverflow!";
wofstream file(L"Test.txt");
file << someString; // the output file will consist of ASCII characters!
}
Soy consciente de que esto tiene que ver con el estándar.codecvt
. Ahi estacodecvt
parautf8
enBoost
. Además, hay unacodecvt
parautf16
porMartin York aquí en SO. La pregunta espor qué lastandard codecvt
convierte caracteres anchos? ¿Por qué no escribir los personajes como son?
Además, vamos a ser realesunicode streams
con C ++ 0x o me estoy perdiendo algo aquí?