C++ 实验::文件系统::目录\迭代器和运算符++()
我正在写一个程序,它把目录中的所有文件名都放在一个数组中。我遇到的问题是运算符++显示错误并且不会增加迭代器。任何帮助都将不胜感激C++ 实验::文件系统::目录\迭代器和运算符++(),c++,c++17,C++,C++17,我正在写一个程序,它把目录中的所有文件名都放在一个数组中。我遇到的问题是运算符++显示错误并且不会增加迭代器。任何帮助都将不胜感激 #include <iostream> #include <string> #include <filesystem> namespace fs = std::experimental::filesystem; int main() { std::cout << "Select a directory :"
#include <iostream>
#include <string>
#include <filesystem>
namespace fs = std::experimental::filesystem;
int main()
{
std::cout << "Select a directory :";
std::string path;
std::cin >> path;
std::cout << "How many files :";
int dirFiles;
std::cin >> dirFiles;
int i = { 0 };
std::vector<std::string> fileNames(dirFiles);
for (auto& p : fs::directory_iterator(path)){
while (i < dirFiles) {
fileNames[i] = p.path().string();
fs::directory_iterator& operator++();
std::cout << fileNames[i];
i++;
}
}
system("pause");
return 0;
}
已经知道如何循环其组成元素。您不需要自己做额外的工作:
std::vector<std::string> fileNames;
for (auto& p : fs::directory_iterator(path)){
fileNames.push_back(p.path().string());
}
这与C++17无关。C++17在标准库中包含文件系统;您似乎在询问以前的TS。我在没有包含的情况下收到一个错误,它甚至不会读取第一个文件名,这样至少可以读取名称。我还可以将所有文件输出到控制台。在C++17中,您需要在此处链接include.worth