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