Condividi tramite


Valori letterali carattere C++

Un valore letterale carattere è costituito da un carattere costante. È rappresentato dal carattere racchiuso tra virgolette singole. Sono disponibili due tipi di valori letterali carattere:

  • Valori letterali carattere "narrow" di tipo char, ad esempio 'a'

  • Valori letterali carattere "wide" di tipo wchar_t, ad esempio L'a'

Il carattere usato per un valore letterale carattere può essere un carattere grafico qualsiasi, a eccezione dei caratteri riservati, quali il carattere di nuova riga ('\n'), la barra rovesciata ('\'), la virgoletta singola (') e le virgolette doppie ("). I caratteri riservati sono specificati con una sequenza di escape.

Sequenze di escape

Esistono cinque tipi di sequenze di escape: semplici, ottali, esadecimali, Unicode (UTF-8) e Unicode (UTF-16). Le sequenze di escape possono essere una delle seguenti:

Valore

Sequenza di escape

carattere di nuova riga

\n

tabulazione orizzontale

\t

tabulazione verticale

\v

BACKSPACE

\b

ritorno a capo

\r

avanzamento carta

\f

avviso

\a

barra rovesciata

\\

punto interrogativo

? o \?

virgoletta singola

\'

virgoletta doppia

\"

carattere null

\0

ottale

\ooo

esadecimale

\xhhh

Unicode (UTF-8)

\uxxxx

Unicode (UTF-16)

\Uxxxxxxxx

Nel codice seguente vengono illustrati alcuni esempi di caratteri di escape.

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

Per informazioni sulle sequenze di escape UTF-16 con \U, vedere Valori letterali stringa C++.

Sezione specifica Microsoft

Una sequenza di escape ottale è una barra rovesciata seguita da una sequenza di un massimo di 3 cifre ottali. Il comportamento di una sequenza di escape ottale contenente più di tre cifre è definito dall'implementazione; queste sequenze possono produrre risultati sorprendenti. Ad esempio:

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

Le sequenze di escape contenenti caratteri non ottali vengono valutate come l'ultimo carattere non ottale. Ad esempio:

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

Una sequenza di escape esadecimale è una barra rovesciata seguita dal carattere x, seguito a sua volta da una sequenza di cifre esadecimali. Una sequenza di escape che non contiene cifre esadecimali causa l'errore C2153 del compilatore: "le costanti esadecimali devono avere almeno una cifra esadecimale". Una sequenza di escape contenente caratteri esadecimali e non esadecimali viene valutata come l'ultimo carattere non esadecimale. Il valore esadecimale più elevato è 0xff.

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

Fine sezione specifica Microsoft

Il carattere (\) è un carattere di continuazione di riga, quando viene posizionato alla fine di una riga. Se si vuole che un carattere barra rovesciata venga visualizzato come un valore letterale carattere, è necessario digitare due barre rovesciate di seguito in una riga (\\). Per altre informazioni sul carattere di continuazione di riga, vedere Fasi di conversione.

Caratteri Unicode

I caratteri unicode con codifica UTF-8 sono rappresentati con il prefisso \u. Ad esempio:

const wchar_t chr1 = L'\u79c1';

In molti casi, è possibile immettere semplicemente il carattere desiderato:

const wchar_t chr2 = L'私'; 

Impostazioni dell'editor di Visual C++

Per impostazione predefinita, l'editor del codice di Visual C++ utilizza la codifica appropriata per le impostazioni locali. Nelle versioni in inglese di Visual Studio la tabella codici predefinita è 1252. Tuttavia, se si aggiunge un tipo diverso di carattere, ad esempio un carattere Unicode, e si salva il file, verrà visualizzato il seguente messaggio: "È possibile che alcuni caratteri Unicode del file non vengano salvati nella tabella codici corrente. Salvare nuovamente questo file come Unicode in modo da mantenere i dati?" È possibile salvare il file con qualche altra codifica. È inoltre possibile modificare la tabella codici del file nella finestra di dialogo File, Opzioni di salvataggio avanzate. Ed è possibile disabilitare il rilevamento automatico dei caratteri Unicode deselezionando "Rileva automaticamente codifica UTF-8 senza firma" nella pagina delle opzioni Strumenti, Opzioni, Editor di testo, Generale.

Vedere anche

Riferimenti

Valori letterali C++