标题:求助,同样代码昨天运行正常。今天handle=_findfirst(inpath.c_str(),&file ...
只看楼主
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
结帖率:97.22%
 问题点数:0 回复次数:3 
求助,同样代码昨天运行正常。今天handle=_findfirst(inpath.c_str(),&fileinfo); 找不到文件
昨天运行好好的。。。。
到底什么情况。。。
程序代码:
#include<stdio.h>
#include<string>
#include<io.h>

int main()
{
    std::string inpath = "E:\\c语言视频教程\\Download\\*.*";

    long handle;
    struct _finddata_t fileinfo;

    handle=_findfirst(inpath.c_str(),&fileinfo);
    if (handle == -1)
        return -1;
    do
    {
        printf("%s\n", fileinfo.name);
    }
    while (!_findnext(handle,&fileinfo));

    _findclose(handle);
    return 0;
}



昨天运行好好的。。。。



今天什么情况。。。。





昨天VS2022问题解决了。。。。。
long handle; 改成了 intptr_t handle;

昨天VS2022运行问题


今天VS2022运行。。。。。。OK


[此贴子已经被作者于2022-5-29 20:13编辑过]

搜索更多相关主题的帖子: include c_str 今天 代码 运行 
2022-05-29 10:30
op123
Rank: 6Rank: 6
等 级:贵宾
威 望:21
帖 子:170
专家分:461
注 册:2022-6-4
得分:0 
奇怪
2022-06-26 20:03
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
先把代码改正确,即使用的是mingw,也要将 long handle 改为 intptr_t handle; (我不明白的一点是,别人明明返回类型是 intptr_t,你为什么要将它改为 long,目的是什么?)
如果还不行,那是字符编码的问题,setlocale 再加上 -fexec-charset=GBK
2022-06-27 10:04
RockCarry
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
得分:0 
建议开启全警告编译,比如 gcc 的 -Wall,然后保证零警告编译通过。
2022-07-01 12:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509202-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.095261 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved