Znakové literály jazyka C++
Objekt znak literál se skládá z konstantní znak.Je zobrazena znak uzavřen v jednoduchých uvozovkách.Existují dva druhy literály znak:
Úzký znak literály typu char, například'a'
Širokého znaku literály typu wchar_t, napříkladL'a'
Znak použitý pro znak literálu může být jakýkoli grafický znak, s výjimkou vyhrazené znaky jako nový řádek ("\n"), zpětné lomítko ("/"), jednoduchých uvozovkách (') a dvojité uvozovky (").Vyhrazené znaky jsou být zadán s řídicí sekvencí.
Řídicí sekvence
Existuje pět typů řídicí sekvence: jednoduché, osmičková, šestnáctková, Unicode (UTF-8) a Unicode (UTF-16).Řídicí sekvence může být jakýkoli z následujících akcí:
Hodnota |
Řídicí sekvence |
---|---|
newline |
\n |
Vodorovné karty |
\t |
svislé karty |
\v |
BACKSPACE |
\b |
návrat na začátek řádku |
\r |
řídicí znak |
\f |
Výstraha |
\a |
zpětné lomítko |
\\ |
otazník |
?nebo /? |
jednoduché uvozovky |
\' |
dvojité uvozovky |
\" |
prázdný znak |
\0 |
osmičkové |
\ooo |
hexadecimální |
\xhhh |
Unicode (UTF-8) |
\uxxxx |
Unicode (UTF-16) |
\Uxxxxxxxx |
Následující kód ukazuje některé příklady uvozený znaků.
#include <iostream>
using namespace std;
int main() {
char newline = '\n';
char tab = '\t';
char backspace = '\b';
char backslash = '\\';
char nullChar = '\0';
cout << "Newline character: " << newline << "ending" << endl; // Newline character:
// ending
cout << "Tab character: " << tab << "ending" << endl; // Tab character : ending
cout << "Backspace character: " << backspace << "ending" << endl; // Backspace character : ending
cout << "Backslash character: " << backslash << "ending" << endl; // Backslash character : \ending
cout << "Null character: " << nullChar << "ending" << endl; //Null character: ending
}
Informace o UTF-16 řídicí sekvence s \U naleznete v tématu Textové literály jazyka C++.
Specifické pro Microsoft
Osmičková řídicí sekvencí je zpětné lomítko následované posloupnost až 3 osmičková číslice.Chování osmičková řídicí sekvencí, který obsahuje více než tří číslic je definován implementace; poskytují překvapivé výsledky.Příklad:
char c1 = '\100'; // char '@'
char c2 = '\1000'; // char '0'
Řídicí sekvence, které obsahují-osmičková znaky, jsou vyhodnoceny jako poslední-osmičková znak.Příklad:
char c3 = '\009'// char '9'
char c4 = '\089' // char '9'
char c5 = '\qrs' // char 's'
Zpětné lomítko, za nímž následuje znak je hexadecimální sekvenci xnásledovaný sekvenci hexadecimálních číslic.Řídicí sekvencí, který obsahuje bez hexadecimálních číslic způsobí, že chyba kompilátoru C2153: "hexadecimálně konstanty musí mít alespoň jednu číslici hexadecimálně".Řídicí sekvencí, který má hexadecimální a jiné šestnáctková znaky vyhodnocena jako poslední znak bez šestnáctková.Nejvyšší hexadecimální hodnota je 0xff.
char c1 = '\x0050'; // char 'P'
char c2 = '\x0pqr'; // char 'r'
END Specifické pro Microsoft
Lomítka (\) je znak pokračování řádku, když je umístěn na konec řádku.Pokud chcete zobrazit jako literál znak zpětné lomítko, je nutné zadat dvě zpětná v řádku (\\).Další informace o znak pro pokračování řádku naleznete v tématu Fáze posunutí.
Znaky znakové sady Unicode
S předponou \u reprezentují znaky znakové sady Unicode, které mají kódování UTF-8.Příklad:
const wchar_t chr1 = L'\u79c1';
V řadě případů lze pouze vstupní požadovaný znak:
const wchar_t chr2 = L'私';
Nastavení editoru jazyka Visual C++
Editor kódu Visual C++ používá ve výchozím nastavení kódování, které je vhodné pro vaše národní prostředí.V Anglická verze sady Visual Studio je výchozí znaková stránka 1252.Nicméně, je-li přidat jiný typ znaku, například znaku Unicode a uložte soubor, zobrazí se zpráva: "některé znaky Unicode v tomto souboru se nepodařilo uložit v aktuální znakové stránky.Chcete k opakovanému uložení tento soubor ve formátu Unicode, aby byl zajištěn optimální data?" Můžete uložit soubor s některé jiné kódování.Můžete také změnit na stránce kódu pro určitý soubor soubor, rozšířené možnosti ukládání dialogové okno.Lze vypnout automatické rozpoznávání znaků Unicode podle unchecking "automatické rozpoznání kódování UTF-8 bez podpisu" nástroje, možnosti, textový Editor, Obecné možnosti stránky.