Я написал программу поиска файла с помощью функции FindFirstFile(...)
. Но когда я пытаюсь распечатать вывод этой функции, в консольных окнах напечатано несколько строк неизвестных символов. Я прочитал несколько сообщений, там было написано, чтобы попытаться использовать wcout
вместо cout
. Я стараюсь, но это не помогает. Я думаю, что проблема заключается в различии между кодировками ANSI и UNICODE. Может кто-нибудь мне помочь? Я буду очень благодарен за любую помощь!C++, вывод FindFirstFile()
Вот мой код:
#include "FindFile.h"
#include <iostream>
using namespace std;
void FindFileCl::Execute(Input * input, Response * response)
{
WIN32_FIND_DATAA FindFileData;
HANDLE h = FindFirstFileA((input->FileName).c_str(), // name of the file
&FindFileData);
if (h)
{
cout << "Search Results:\n";
cout<<(FindFileData.cFileName);
CloseHandle(h);
}
else
{
cerr << "File is NOT found:" << GetLastError() << "\n";
}
}
Попробуйте использовать FindFirstFile, а не 'FindFirstFileA', и создайте свою программу в Unicode. Используйте 'chcp 65001' в консоли, чтобы изменить кодовую страницу на UTF-8. –
Благодарим за ответ, Неманья Борич. Я попытался использовать FindFirstFile вместо FindFirstFileA, но затем он вызывает проблемы с первым параметром функции, поэтому я использую FindFirstFileA. – Victor
О, вам нужно использовать 'WIN32_FIND_DATA' вместо' WIN32_FIND_DATAA'. –