那如果想在屏幕上打印宽字符,怎么打印呢?
宽字符的字⾯量必须加上前缀“L”,否则 C 语⾔会把字⾯量当作窄字符类型处理。前缀“L”在单引 号前⾯,表⽰宽字符,对应 wprintf() 的占位符为 %lc ;在双引号前⾯,表⽰宽字符串,对应 wprintf() 的占位符为 %ls 。
- #include
- #include
- int main() {
- setlocale(LC_ALL, "");
- wchar_t ch1 = L'●';
- wchar_t ch2 = L'⽐';
- wchar_t ch3 = L'特';
- wchar_t ch4 = L'★';
-
- printf("%c%c\n", 'a', 'b');
-
- wprintf(L"%lc\n", ch1);
- wprintf(L"%lc\n", ch2);
- wprintf(L"%lc\n", ch3);
- wprintf(L"%lc\n", ch4);
- return 0;
- }
输出结果:
从输出的结果来看,我们发现⼀个普通字符占⼀个字符的位置 但是打印⼀个汉字字符,占⽤2个字符的位置,那么我们如果 要在贪吃蛇中使⽤宽字符,就得处理好地图上坐标的计算。