C++字面C++字面和Unicode
環境:
- 操作系統:Windows 10臨;
- 編譯器:GCC最新版。
- IDE:Code :: Blocks latest。
- 致力於:控制檯應用程序。
我對數字文字前綴的理解是,它們對確定數值類型(不確定)很有用。但是,我對字符和字符串文字前綴和後綴有很多困惑。我讀了很多,花了好幾天的時間來了解情況,但我收到了更多的問題和答案。所以我認爲堆棧溢出可能會有很多幫助。
Qs的:
1-什麼是字符串前綴U8 U U L中的正確使用?
我有下面的代碼爲例:
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "\n\n Hello World! (plain) \n";
cout << u8"\n Hello World! (u8) \n";
cout << u"\n Hello World! (u) \n";
cout << U"\n Hello World! (U) \n";
cout << L"\n Hello World! (plain) \n\n";
cout << "\n\n\n";
}
輸出是這樣的:
的Hello World! (普通)
Hello World! (U8)
0x47f0580x47f0840x47f0d8
Q2:爲什麼U U ANS L具有這樣的輸出?我預計它只是確定類型不做編碼映射(如果是)。
Q3是否有一個簡單的點引用關於像UTF-8這樣的編碼。我對它們感到困惑,另外我懷疑控制檯應用程序是否有能力處理它們。我認爲了解它們是至關重要的。
Q4:另外,我將欣賞一步一步的參考,解釋自定義類型文字。
*「Compiler:GCC latest。」* - 請給出版本號。完全有可能在你發表這篇文章和我的評論之間,新版本可能已經發布。另請查看http://en.cppreference.com/w/cpp/language/string_literal – WhiZTiM
一般最好每個問題提出一個問題。多個問題傾向於龐大的答案,並且使未來的用戶難以找到他們正在尋找的信息。 – user4581301
例如,回答1需要對字符編碼進行簡短的討論,爲什麼'std :: cout'似乎處理UTF8,而'std :: wcout'則會成爲一個出色的獨立問題。 – user4581301