标题:求助,全注释掉,留个空函数,还是有错。。。
取消只看楼主
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
结帖率:97.22%
已结贴  问题点数:20 回复次数:13 
求助,全注释掉,留个空函数,还是有错。。。
求助,全注释掉,留个空函数,还是有错。。。

程序代码:
#include <iostream>
#include <filesystem>
#include <algorithm>
using namespace std;

bool ReduceFileName(const std::filesystem::path& path)
{
    //auto make_name_name = [](const std::wstring& filename)
    //{
    //    size_t a = filename.find(L':');
    //    if (a != std::wstring::npos)
    //    {
    //        a = filename.find_first_not_of(L"\t\n\v\f\r ", a + 1);
    //        size_t b = filename.find_first_of(L"((", a);
    //        b = filename.find_last_not_of(L"\t\n\v\f\r ", b - 1);
    //        return filename.substr(a, b + 1 - a);
    //    }
    //    return filename;
    //};

    //using namespace std::filesystem;
    //try
    //{
    //    for (auto& entry : directory_iterator(path))
    //    {
    //        if (entry.is_regular_file()) // 只处理常规文件
    //        {
    //            auto ext = entry.path().extension().generic_wstring(); // 扩展名
    //            std::for_each(begin(ext), end(ext), [](auto& c) {if (c >= L'A'&&c <= L'Z') c += L'a' - L'A'; }); // 扩展名转化成小写
    //            if (ext == L".mp4")
    //            {
    //                const auto& old_name = entry.path().stem().generic_wstring();
    //                const auto& new_name = make_name_name(old_name);
    //                if (old_name != new_name)
    //                {
    //                    wcout << old_name << L" -> " << new_name;

    //                    auto new_path = entry.path().parent_path() / (new_name + L".mp4");
    //                    if (exists(new_path)) // 新文件名已经存在
    //                    {
    //                        wcout << L" --- [failed] 文件已存在";
    //                    }
    //                    else
    //                    {
    //                        std::error_code ec;
    //                        rename(entry, new_path, ec);
    //                        if (ec)
    //                            cout << " --- [failed] " << ec.message();
    //                    }

    //                    wcout << L'\n';
    //                }
    //            }
    //        }
    //    }
    //}
    //catch (const std::exception& e)
    //{
    //    cout << "[failed] " << e.what() << '\n';
    //    return false;
    //}
    return true;
}

int main(void)
{
    wcout.imbue(std::locale(std::locale(), "", std::locale::ctype));
    ReduceFileName(u8R"(C:\Users\Administrator\Desktop\[WPF]JJDown\Download\)"); // 使用 Unicode 可避免GBK认字不全
}



1>------ 已启动生成: 项目: test3, 配置: Debug Win32 ------
1>  test3.cpp
1>c:\users\administrator\desktop\test3\test3\test3.cpp(6): error C3083: “filesystem”:“::”左侧的符号必须是一种类型
1>c:\users\administrator\desktop\test3\test3\test3.cpp(6): error C2039: “path”: 不是“std”的成员
1>  c:\program files (x86)\microsoft visual studio 14.0\vc\include\filesystem(26): note: 参见“std”的声明
1>c:\users\administrator\desktop\test3\test3\test3.cpp(6): error C2143: 语法错误: 缺少“,”(在“&”的前面)
1>c:\users\administrator\desktop\test3\test3\test3.cpp(68): error C2664: “bool ReduceFileName(const int)”: 无法将参数 1 从“const char [53]”转换为“const int”
1>  c:\users\administrator\desktop\test3\test3\test3.cpp(68): note: 没有使该转换得以执行的上下文
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
搜索更多相关主题的帖子: const if auto path std 
2022-05-23 20:51
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 2楼 apull
bool ReduceFileName(const std::C++17::filesystem::path& path)

这样吗?。。。。
VS2015也可以使用吗???
2022-05-24 07:27
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 4楼 rjsp
你教我的,这种算法用不了了!!!!
电脑用VS2015就很卡,反应好慢!!!
VS2010一点不卡。
VS2010不支持C99,不能搭建FFmpeg环境,刚安装了VS2015。。可以搭建FFmpeg环境了,但太卡了。。。
如果再换成VS2019,我怕电脑根本运行不起来VS2019。。。
2022-05-24 13:09
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 7楼 rjsp
谢谢!!!
刚刚下载了,有时间了,安装学习一下。。。
2022-05-24 23:39
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 7楼 rjsp
第一次用,这个软件。。。
好不容易,找到了汉化包。。。
编译器,是选这个吗?
这样配置对吗?


又出错了。。。


测试用的目录和文件。
[WPF]JJDown.rar (2.67 KB)


[此贴子已经被作者于2022-5-26 02:15编辑过]

2022-05-26 02:00
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 10楼 rjsp
太笨了,不知道原理。。。
如何,模仿去做,都是错。。。
好像,电脑专和自己过 不去。。。。

2022-05-26 19:30
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 10楼 rjsp
用了一天的时间,它终于可以认识 const std::filesystem::path 了。。。。。。。。。
编译,可以从第6行,直到第10行了!!!!!!


它默认不支持C++17的,还要自己设置。。。。





第10行,又是什么问题呀。。。


[此贴子已经被作者于2022-5-27 01:34编辑过]

2022-05-27 01:32
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 10楼 rjsp
不认识 const std::filesystem::path
是因为,const std::filesystem::path 需要C++17的支持。。。

第10行,错误是。。。main.cpp格式不支持宽字符(全角标点符号/汉字)。
可以用UTF-8格式来解决。

现在编译,main.cpp文件中已经没有了错误。。。。
可是fs_path.h头文件中出现了10个错误。。。。
错误信息。。。。
10个错误全在fs_path.h头文件中.txt (1.77 KB)




UTF-8让main.cpp文件可以支持宽字符了。。。

这是控制台程序,控制台输入/输出是不支持宽字符的。。。
所以头文件中出错了。。。
还不知道如何解决
2022-05-27 04:05
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 14楼 rjsp
为什么VS2022 也不认识filesystem 呀。。。

2022-05-27 11:46
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:399
专家分:190
注 册:2021-4-9
得分:0 
回复 14楼 rjsp
可以了呀!!!
谢谢,一直一来的细心讲解。。。
还是中文界面的VS比较熟悉。。。
一会,就找到问题了。


2022-05-27 12:11



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




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

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