C++ 目录迭代器值作为变量

C++ 目录迭代器值作为变量,c++,C++,我试图将std:filesystem目录迭代器的输出传输到向量或变量。不断获取错误:no operator“=”与这些操作数匹配--操作数类型为:std::string=const std::filesystem 我对C++是全新的,在这一点上打了界。以前我一直在使用系统命令,但希望以后避免使用 #include <string> #include <iostream> #include <filesystem> #include <vector>

我试图将
std:filesystem
目录迭代器
的输出传输到向量或变量。不断获取错误:
no operator“=”与这些操作数匹配
--操作数类型为:
std::string=const std::filesystem

我对C++是全新的,在这一点上打了界。以前我一直在使用系统命令,但希望以后避免使用

#include <string>
#include <iostream>
#include <filesystem>
#include <vector>
namespace fs = std::filesystem;
using namespace std;
int main()
{
    string objectInDirectory = "Jabberwocky";
    string dirlisted = "";
    for (const auto & entry : fs::directory_iterator(dirlisted)) {
        cout << "Next directory entry: " << entry.path() << endl;
        objectInDirectory = entry.path();
    }
    getchar();
}
#包括
#包括
#包括
#包括
名称空间fs=std::filesystem;
使用名称空间std;
int main()
{
string objectInDirectory=“Jabberwocky”;
字符串dirlisted=“”;
for(const auto&entry:fs::directory_迭代器(dirlisted)){
cout
entry.path()
const std::filesystem::path&
。它不能隐式转换为
std::string
,因此需要调用其string函数:

 objectInDirectory = entry.path().string();

转换到
string
是不必要的;您可以将其分配到
std::filesystem::path
而不需要转换。这可能更理想,因为与
std::filesystem::path
相比,
std::string

有更好的内置路径操作工具n to string是必须的,因为我以后需要在其他地方将其用作字符串。