std::codecvt::in, std::codecvt::do_in
Aus cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
<metanoindex/>
<tbody> </tbody>| definiert in Header <locale>
|
||
public: result in( stateT& state, const externT* from, const externT* from_end, const externT*& from_next, internT* to, internT* to_end, internT*& to_next ) const; |
(1) | |
protected: result do_in( stateT& state, const externT* from, const externT* from_end, const externT*& from_next, internT* to, internT* to_end, internT*& to_next ) const; |
(2) | |
1)
öffentliche Member-Funktion ruft die Member-Funktion
do_in der am meisten abgeleiteten Klasse .Original:
public member function, calls the member function
do_in of the most derived class.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.
2)
Wenn dies
codecvt Facette definiert eine Umwandlung, übersetzt die externe Zeichen aus dem Quellbereich [from, from_end) auf interne Zeichen, indem die Ergebnisse in den nachfolgenden Orten ab to. Konvertiert nicht mehr als from_end - from externen Zeichen und schreibt nicht mehr als to_end - to internen Zeichen. Leaves from_next und to_next zeigt ein über das letzte Element erfolgreich konvertiert .Original:
If this
codecvt facet defines a conversion, translates the external characters from the source range [from, from_end) to internal characters, placing the results in the subsequent locations starting at to. Converts no more than from_end - from external characters and writes no more than to_end - to internal characters. Leaves from_next and to_next pointing one beyond the last element successfully converted.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.
Wenn dies
codecvt Facette nicht definiert eine Umwandlung, werden keine Zeichen umgewandelt. to_next eingestellt, dass sie gleich to, state unverändert ist, und std::codecvt_base::noconv zurückgegeben .Original:
If this
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.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.
Rückgabewert
Ein Wert vom Typ std::codecvt_base::result, was auf den Erfolg Status wie folgt:
Original:
A value of type std::codecvt_base::result, indicating the success status as follows:
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.
ok
|
Konvertierung abgeschlossen
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
|
nicht genügend Platz im Ausgabepuffer oder unerwartete Ende Quellpuffer
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
|
begegnet ein Zeichen, das nicht konvertiert werden konnte
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
|
diese Facette ist nicht konvertieren, keine Ausgabe geschrieben
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. |
Die nicht-Converting-Spezialisierung
std::codecvt<char, char, std::mbstate_t> gibt immer std::codecvt_base::noconvOriginal:
The non-converting specialization
std::codecvt<char, char, std::mbstate_t> always returns std::codecvt_base::noconvThe 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.
Notes
Erfordert, dass
from <= from_end && to <= to_end und dass state entweder die die anfängliche Verschiebung Form oder hergestellt durch Umwandlung der vorhergehenden Zeichen in der Folge .Original:
Requires that
from <= from_end && to <= to_end and that state either representing the initial shift state or obtained by converting the preceding characters in the sequence.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.
Die Wirkung auf
state ist bewusst nicht spezifiziert. Im Standard-Facetten, wird es zur Verschiebung Zustand wie beim Aufruf std::mbsrtowcs halten und wird daher aktualisiert werden, um die Umwandlung Zustand nach dem zuletzt bearbeiteten externen Charakter widerspiegeln, sondern eine benutzerdefinierte Facette ist kostenlos, es zu benutzen, um andere Zustand zu halten, z. B. die Anzahl der Sonderzeichen gestoßen .Original:
The effect on
state is deliberately unspecified. In standard facets, it is used to maintain shift state like when calling std::mbsrtowcs, and is therefore updated to reflect the conversion state after the last processed external 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.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.
Beispiel
#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::string external = u8"z\u00df\u6c34\U0001d10b"; // or u8"zß水𝄋"
// or "\x7a\xc3\x9f\xe6\xb0\xb4\xf0\x9d\x84\x8b";
// note that the following can be done with wstring_convert
std::mbstate_t mb = std::mbstate_t(); // initial shift state
std::wstring internal(external.size(), '\0');
const char* from_next;
wchar_t* to_next;
f.in(mb, &external[0], &external[external.size()], from_next,
&internal[0], &internal[internal.size()], to_next);
// error checking skipped for brevity
internal.resize(to_next - &internal[0]);
std::wcout << L"The string in wide encoding: " << internal << '\n';
}
Output:
The string in wide encoding: zß水𝄋
Siehe auch
[virtuell] |
liest aus der zugehörigen Datei Original: reads from the associated file The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (virtuellen geschützten Member-Funktion of std::basic_filebuf)
|
wandelt ein Byte-String in einem breiten String Original: converts a byte string into a wide string The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion of std::wstring_convert)
| |
wandelt einen schmalen Multibyte Zeichenkette breite Zeichenfolge mit dem angegebenen Zustand Original: converts a narrow multibyte character string to wide 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. (Funktion) | |
[virtuell] |
wandelt eine Zeichenkette aus Internt zu externT, wie beim Schreiben in eine Datei Original: converts a string from internT to externT, such as when writing to file The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (virtuellen geschützten Member-Funktion) |