输出指定目录下的所有文件名和目录名,问题在哪里?

heartgoon2010 2010-05-27 03:52:29
代码如下:
int main()
{
char *filename = "D:\\Workspace";
strcat(filename,"\\*.*");
HANDLE hFind;
WIN32_FIND_DATA FindFileData;
hFind = FindFirstFile(filename,&FindFileData);
if(hFind != INVALID_HANDLE_VALUE)
{
cout << FindFileData.cFileName << endl;

while(FindNextFile(hFind,&FindFileData))
{
cout << FindFileData.cFileName << endl;
}
}
FindClose(hFind);
return 0;
}
编译没有问题,运行时出现黑屏,也提示:。。。.exe遇到问题需要关闭。我们对此引起的不便表示抱歉等等。。。
不知道问题在哪儿,希望高手帮忙讲讲。先谢了!
...全文
120 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
thehunters 2010-05-27
  • 打赏
  • 举报
回复
char filename[256] = "D:\\Workspace";
strcat(filename,"\\*.*");

你定义的filename是一个指向常量字符串的指针,是不允许修改或者追加其内容的。

php人不要在这瞎说
lylm 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 heartgoon2010 的回复:]
如果当前目录不是盘符所指的目录,FindFirstFile()找到的文件或目录是不是都是".",即当前目录
[/Quote]
不是,你要找的filename是什么就找什么
heartgoon2010 2010-05-27
  • 打赏
  • 举报
回复
如果当前目录不是盘符所指的目录,FindFirstFile()找到的文件或目录是不是都是".",即当前目录
heartgoon2010 2010-05-27
  • 打赏
  • 举报
回复
to goodname
谢谢,果然像你所说的那样。
goodname 2010-05-27
  • 打赏
  • 举报
回复
char filename[256] = "D:\\Workspace";
strcat(filename,"\\*.*");

你定义的filename是一个指向常量字符串的指针,是不允许修改或者追加其内容的。

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧