std::codecvt::out, std::codecvt::do_out
![]() |
Esta página se ha traducido por ordenador/computador/computadora de la versión en inglés de la Wiki usando Google Translate.
La traducción puede contener errores y palabras aparatosas/incorrectas. Planea sobre el texto para ver la versión original. Puedes ayudar a corregir los errores y mejorar la traducción. Para instrucciones haz clic aquí. |
Definido en el archivo de encabezado <locale>
|
||
public: result out( stateT& state, |
(1) | |
protected: result do_out( stateT& state, |
(2) | |
do_out
miembro de la clase más derivada .do_out
of the most derived class.You can help to correct and verify the translation. Click here for instructions.
codecvt
define una conversión, convierte los caracteres internos de la [from, from_end)
rango de origen a los caracteres externos, colocando los resultados en las ubicaciones siguientes a partir de to
. Convierte no más de from_end - from caracteres internos y escribe no es más que personajes to_end - to externos. Hojas from_next
y to_next
señalando un más allá del último elemento convertido con éxito .codecvt
facet defines a conversion, translates the internal characters from the source range [from, from_end)
to external characters, placing the results in the subsequent locations starting at to
. Converts no more than from_end - from internal characters and writes no more than to_end - to external characters. Leaves from_next
and to_next
pointing one beyond the last element successfully converted.You can help to correct and verify the translation. Click here for instructions.
codecvt
no define una conversión, sin caracteres se convierten. to_next
se fija para ser igual a to
, state
es invariable, y se devuelve std::codecvt_base::noconv .codecvt
facet does not define a conversion, no characters are converted. to_next
is set to be equal to to
, state
is unchanged, and std::codecvt_base::noconv is returned.You can help to correct and verify the translation. Click here for instructions.
Contenido |
[editar] Valor de retorno
You can help to correct and verify the translation. Click here for instructions.
ok
|
conversión completa
Original: conversion completed The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
partial
|
no hay suficiente espacio en la memoria intermedia de salida o final inesperado de buffer fuente
Original: not enough space in the output buffer or unexpected end of source buffer The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
error
|
encontrado un carácter que no se pudo convertir
Original: encountered a character that could not be converted The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
noconv
|
esta faceta no es la conversión, no hay salida por escrito
Original: this facet is non-converting, no output written The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
You can help to correct and verify the translation. Click here for instructions.
[editar] Notas
state
y que, o bien que representa el estado inicial de cambios o los obtenidos mediante la conversión de los caracteres anteriores en la secuencia .state
either representing the initial shift state or obtained by converting the preceding characters in the sequence.You can help to correct and verify the translation. Click here for instructions.
codecvt
apoya N: M conversiones (por ejemplo, UTF-16 a UTF-8, en el que dos caracteres internos pueden ser necesarios para decidir qué caracteres externos a la salida), std::basic_filebuf sólo puede utilizar codecvt
facetas que definen un 1: Conversión de N, que es debe ser capaz de procesar un carácter interno en un momento cuando se escribe en un archivo .codecvt
supports N:M conversions (e.g. UTF-16 to UTF-8, where two internal characters may be necessary to decide what external characters to output), std::basic_filebuf can only use codecvt
facets that define a 1:N conversion, that is it must be able to process one internal character at a time when writing to a file.You can help to correct and verify the translation. Click here for instructions.
). Esto significa que otro carácter interno que se necesita para completar la conversión (por ejemplo, al convertir UTF-16 a UTF-8, si el último carácter en el búfer de origen es un suplente alto) .
). This means that another internal character is needed to complete the conversion (e.g. when converting UTF-16 to UTF-8, if the last character in the source buffer is a high surrogate).You can help to correct and verify the translation. Click here for instructions.
state
es deliberadamente no especificado. En las facetas estándar, que se utiliza para mantener un estado de cambios como cuando se llama a std::wcsrtombs, y por tanto se actualiza para reflejar el estado de cambios después del último carácter convertido con éxito, sino una faceta definida por el usuario es libre de usarlo para mantener cualquier otro estado, por ejemplo, contar el número de caracteres especiales se encuentran .state
is deliberately unspecified. In standard facets, it is used to maintain shift state like when calling std::wcsrtombs, and is therefore updated to reflect the shift state after the last successfully converted character, but a user-defined facet is free to use it to maintain any other state, e.g. count the number of special characters encountered.You can help to correct and verify the translation. Click here for instructions.
[editar] Ejemplo
#include <iostream> #include <string> #include <locale> int main() { std::locale::global(std::locale("en_US.utf8")); auto& f = std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>(std::locale()); std::wstring internal = L"z\u00df\u6c34\U0001d10b"; // L"zß水𝄋" // note that the following can be done with wstring_convert std::mbstate_t mb = std::mbstate_t(); // initial shift state std::string external(internal.size() * f.max_length(), '\0'); const wchar_t* from_next; char* to_next; f.out(mb, &internal[0], &internal[internal.size()], from_next, &external[0], &external[external.size()], to_next); // error checking skipped for brevity external.resize(to_next - &external[0]); std::cout << "The string in narrow multibyte encoding: " << external << '\n'; }
Salida:
The string in narrow multibyte encoding: zß水𝄋
[editar] Ver también
[virtual] |
escribe caracteres en el fichero de asociados de la zona de venta Original: writes characters to the associated file from the put area The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro virtual protegida de std::basic_filebuf )
|
convierte una cadena de ancho en una cadena de bytes Original: converts a wide string into a byte string The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública de std::wstring_convert )
| |
convierte una cadena a cadena estrecha gama de caracteres multibyte, estado dado Original: converts a wide string to narrow multibyte character string, given state The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función) | |
[virtual] |
convierte una cadena de externT a internt, como cuando al leer el archivo Original: converts a string from externT to internT, such as when reading from file The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro virtual protegida) |