我是C ++的新手。我一直在尝试访问特定文件夹中的文件名。我不确定我是否应该使用矢量或列表。我试过一个清单,只是因为那是我习惯的。
#include <iostream>
#include <string>
#include <fstream>
#include <list>
using namespace std;
list<string> file_list(string file)
{
list<string> list;
ifstream files;
string line;
files.open(file);
while (getline(files, line)) {
list.push_back(line);
}
files.close();
cout << &list << endl;
return list;
}
当我调试变量line
时保持空白并打印出0x7fff5fbff6b0
。
我正在尝试访问我的下载文件夹。字符串变量'file'是它的直接路径。它打开很好,但我无法访问其中的文件名。
答案 0 :(得分:0)
C ++标准库没有文件系统访问库(yet)。如果要枚举文件夹中的所有文件而编译器没有std::experimental::filesystem
,则可以使用boost::filesystem。
答案 1 :(得分:0)
这个
cout << &list << endl;
打印出列表的地址,即神秘的0x7fff5fbff6b0
,而不是列表的内容。
要打印内容,您需要更像
的内容for (string & str: list)
{
cout << str << endl;
}
哦,失去了;在
结束时list<string> file_list(string file);
杜尔。是啊。完全错过了OP试图做的事情。
像文件一样读取目录不适用于流。您必须使用特定于平台的方法。请将此问题改为:How do you iterate through every file/directory recursively in standard C++?