C++使用字符时的疑惑

写Winapi的时候遇到了一个让我百思不得其解的问题

#include
#include
#include 
using namespace std;

int main(){
    wchar_t Buffer[MAX_PATH]{};
    OPENFILENAME ofn{};
    ofn.lStructSize = sizeof(ofn);
    ofn.lpstrFilter = TEXT("所有文件(*.*)\0*.*\0");//要选择的文件后缀 
    ofn.lpstrInitialDir = TEXT("E:\\Program Files");//默认的文件路径 
    ofn.lpstrFile = Buffer;//存放文件的缓冲区
    ofn.nMaxFile = sizeof(Buffer) / sizeof(*Buffer);
    ofn.nFilterIndex = 0;
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_EXPLORER | OFN_ALLOWMULTISELECT;//标志如果是多选要加上OFN_ALLOWMULTISELECT
    BOOL bSel = GetOpenFileName(&ofn);

    cout << ofn.lpstrFile;
}

然后它每次都输个“69”出来(?)
我疑惑死了
用调试台输出时是对的,一串路径
控制台上给我看个数字(?)
确实是E的内码(E盘),但明明是字符为什么数出来是数字啊,而且还只有一个?

将项目属性改为使用多字节字符即可解决

你用的是宽字符类型wchar_t,最好用wcout输出