gpt4 book ai didi

c++ - 为什么 CFindFile 函数 GetFilePath、GetFileName 返回十六进制输出?

转载 作者:行者123 更新时间:2023-11-28 03:03:07 25 4
gpt4 key购买 nike

<分区>

我正在使用 MFC CFindFIle 在给定的搜索目录中搜索特定的 .dat 文件,我需要在控制台 (cout) 中输出与搜索条件匹配的文件的文件路径和文件名。它有效,但在控制台中返回奇怪的结果:

01E73500:000AB810:01E77558
01E77F40:000AB810:01E77FD0
01E740C8:01EA7478:01EA1D00
01EB78C8:01ECAA80:01EAF240
Press any key to continue . . .

为什么输出格式为十六进制?语言环境问题还是其他?代码在 win 7 64 位、en_us 语言环境上运行。

我正在使用以下代码进行搜索

void Recurse(LPCTSTR pstr)
{
CFileFind finder;

// build a string with wildcards
CString strWildcard(pstr);
strWildcard += _T("\\*.dat");

// start working for files
BOOL bWorking = finder.FindFile(strWildcard);

while (bWorking)
{
bWorking = finder.FindNextFile();

// skip . and .. files; otherwise, we'd
// recur infinitely!

if (finder.IsDots())
continue;

// if it's a directory, recursively search it

if (finder.IsDirectory())
{
CString str( finder.GetFileName());
cout << str << endl;
Recurse(str);
}
else {
CString sFilePath(finder.GetFilePath());
CString sFileName(finder.GetFileName());
//CString sFileTitle(finder.GetFileTitle());

cout << sFilePath << ":" << sFileName << ":" << endl;
}
}

finder.Close();
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com