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.