Sdílet prostřednictvím


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.

Viz také

Referenční dokumentace

Literály jazyka C++