|

楼主 |
发表于 2020-2-25 18:20:15
|
显示全部楼层
#include <windows.h>
#include <tchar.h>
#include <iostream>
using namespace std;
int main()
{
std::wcout.imbue(std::locale("chs"));//缺少这一句wcout无法输出中文
TCHAR path[] = L"F:\\C++\\C++ 零基础入门到完全独立开发1 基础篇\\*";
TCHAR name[50];
WIN32_FIND_DATAW findFiles;
HANDLE hFind= FindFirstFile(path,&findFiles);
if (hFind != INVALID_HANDLE_VALUE) {
while (FindNextFile(hFind,&findFiles)) {
if (_tcscmp(findFiles.cFileName, L".") == 0 || _tcscmp(findFiles.cFileName, L"..") == 0) { continue; }
wcout << findFiles.cFileName << endl;//使用wcout输出中文
}
}
FindClose(hFind);
system("pause");
return 0;
}
找到了一种解决方案,就是使用wcout输出,并加了一句话std::wcout.imbue(std::locale("chs"));
虽然问题解决了,但是还是不明白,为什么要用wcou输出,还需要再加一句话.有没有其他解决方案.
使用MessageBox()输出的时候就没有这种问题
|
|