Udostępnij za pośrednictwem


Literały znaków C++

Element literał znak składa się z stałych znaków.Jest on reprezentowany przez znak ujęte w znaki apostrofu.Dostępne są dwa rodzaje literały znak:

  • Znak wąskie literały typu char, na przykład'a'

  • Literały całego znaku typu wchar_t, na przykładL'a'

Znak użyty dla znaku literałowego może być dowolny znak graficzny, z wyjątkiem znaków zastrzeżonych, takich jak nowego wiersza ("\n"), ukośnika odwrotnego ("\"), pojedynczym cudzysłowie (') i podwójnego cudzysłowu (").Zastrzeżone znaki to określić sekwencji ucieczki.

Sekwencje unikowe

Istnieje pięć rodzajów sekwencji ucieczki: prosty, ósemkowego szesnastkowy Unicode (UTF-8) i Unicode (UTF-16).Sekwencji ucieczki mogą być następujące:

Wartość

Sekwencja

nowy wiersz

\n

Karta pozioma

\t

Karta pionowy

\v

BACKSPACE

\b

powrót karetki

\r

kanał formularza

\f

alert

\a

ukośnika odwrotnego

\\

znak zapytania

?lub \?

pojedynczy cudzysłów

\'

podwójnego cudzysłowu

\"

znak null

\0

ósemkowy

\ooo

szesnastkowo

\xhhh

Unicode (UTF-8)

\uxxxx

Unicode (UTF-16)

\Uxxxxxxxx

Poniższy kod pokazuje niektóre przykłady znaków o zmienionym znaczeniu.

#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
}

Informacji o sekwencji ucieczki UTF-16 z \U, zobacz Literały ciągu języka C++.

Specyficzne dla firmy Microsoft

Sekwencja ósemkową jest ukośnik odwrotny następuje sekwencję maksymalnie 3 ósemkową cyfr.Jest to zachowanie ósemkową sekwencja, która zawiera więcej niż trzy cyfry zdefiniowane w implementacji; dają one zaskakująco wyników.Na przykład:

char c1 = '\100';     // char '@'
char c2 = '\1000';   // char '0' 

Sekwencji ucieczki, które zawierają znaków-są traktowane jako ostatni znak ósemkową.Na przykład:

char c3 = '\009'// char '9'
char c4 = '\089'     // char '9'
char c5 = '\qrs'     // char 's'

Ukośnik odwrotny, po którym następuje znak jest szesnastkową sekwencję anulowania x, a po nim sekwencję znaków szesnastkowych.Sekwencja zawierający nie szesnastkowych powoduje błąd kompilatora C2153: "stałe szesnastkowa musi mieć co najmniej jedną wartość szesnastkowa".Sekwencji ucieczki, zawierającej znaki szesnastkowe i -cyfrowym jest szacowana jako ostatni znak-cyfrowym.Największa wartość szesnastkowa jest 0xff.

char c1 = '\x0050';  // char 'P'
char c2 = '\x0pqr';  // char 'r'

KONIEC Specyficzne dla firmy Microsoft

Ukośnika odwrotnego (\\) jest znakiem kontynuacji wiersza, gdy jest umieszczane na końcu wiersza.Znak ukośnika odwrotnego wyświetlany jako znak literałowy, należy należy wpisać dwa razy pod rząd (\\).Aby uzyskać więcej informacji na temat znak kontynuacji wiersza, zobacz Fazy tłumaczenia.

Znaków Unicode

Znaków Unicode, które mają kodowania UTF-8 są reprezentowane z prefiksem \u.Na przykład:

const wchar_t chr1 = L'\u79c1';

W wielu przypadkach możesz po prostu wejściowych żądany znak:

const wchar_t chr2 = L'私'; 

Ustawienia programu Visual C++ edytora

Edytor kodu Visual C++ używa domyślnie kodowania, które jest odpowiednie dla ustawień regionalnych.W angielskiej wersji programu Visual Studio domyślna strona kodowa jest 1252.Jednakże, jeśli Dodawanie innego rodzaju znak, na przykład znaku Unicode i zapisać plik, zostanie wyświetlony komunikat: "niektórych znaków Unicode, w tym pliku nie można zapisać w bieżącej strony kodowej.Czy chcesz zapisać ten plik jako Unicode, aby zachować dane?" Można zapisać plik z niektóre inne kodowanie.Możesz również zmienić strony kodowej w pliku pliku, zaawansowane opcje zapisywania okna dialogowego.Można wyłączyć automatyczne wykrywanie znaków Unicode przez unchecking "automatyczne wykrywanie kodowania UTF-8 bez podpisu" narzędzia, opcje, Edytor tekstu, ogólne Opcje strony.

Zobacz też

Informacje

Literały języka C++