2009-10-19 16 views
23

Patrzyłem na sekwencje escape dla znaków w ciągach w C++ i zauważyłem, że istnieje sekwencja escape dla znaku zapytania. Czy ktoś może mi powiedzieć, dlaczego tak jest? To po prostu wydaje się trochę dziwne i nie wiem co? robi w ciągu. Dzięki.Sekwencja Escape dla? w C++

Odpowiedz

26

Ma to na celu niedopuszczenie do błędnego zinterpretowania znaku zapytania jako części trigraph.

Na przykład w

"What??!" 

„?? byłyby interpretowane jako znak | Tak, trzeba uciec znaki zapytania w następujący sposób:.

"What\?\?!" 

Przykład uzupełnia z http://msdn.microsoft.com/en-us/library/bt0y4awe%28VS.80%29.aspx

+3

domyślnie gcc wyłącza interpretacja trójznaków, chyba że są one wyraźnie włączone z '-trigraphs' , '-ansi' lub niektóre z opcji' -std = xxx'. '-Wrigraphs' (włączony przez' -Wall') również włącza ostrzeżenia dla sekwencji trigraf. –

+2

Wszystko o trigrafach: http://stackoverflow.com/questions/1234582/ Purpose-of-trigraph-sequences-in-c/1234618#1234618 –

+2

Każdego dnia uczysz się czegoś nowego ... – GRB

0

w sekwencji ucieczki C++ są specjalnymi rodzajami znaków tutaj w tym filmie wyjaśnij użycie sekwencji ucieczki dobre maniery mogą być nie będzie w stanie zrozumieć język, ale oglądając film można zrozumieć link: https://www.youtube.com/watch?v=jMKYGbYnRYo&t=250s

+1

Odpowiedź jest OK, ale nie łącz się z youtube. być dostępne za jakiś czas. – yacc