我正在尝试在以下代码中打印一个方形标记:
代码 1:
char* exp = new char[300];
*(exp) = 178// which is 2's extended ascii code
*(exp+1) = '\0'// end of string
printf("%s",exp);`
它会打印“?”
似乎小 2 会自动加入下一个字母:
代码 2:
char* exp = new char[300];
*(exp) = 178// which is 2's extended ascii code
*(exp+1) = '4'// or anything '5' 'a' '#'...
*(exp+2) = '\0'// end of string
printf("%s",exp);
它会打印一个中文单词,也可能不会,但真的很喜欢。
应该怎么办?我只想打印“小 2”。
附言:
在 WindowsXP 控制台中,非常感谢您的帮助。
下面是打印上标2的三种不同方式:
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main(int argc, char** argv)
{
setlocale(LC_CTYPE, "");
wchar_t *foo = L"²";
wprintf(L"%ls\n", foo);
wprintf(L"²\n");
wchar_t bar[2];
bar[0] = 178;
bar[1] = 0;
wprintf(L"%ls\n", bar);
return 0;
}
我是一名优秀的程序员,十分优秀!