【发布时间】:2022-01-22 21:25:23
【问题描述】:
这个程序应该得到一个目录名作为参数。我有一段工作代码可以打印目录中的文件名。但是我怎么能在这里传递目录名呢?
#include <dirent.h>
#include <stdio.h>
int main(int argc, char* argv[]) {
DIR *d;
struct dirent *dir;
d = opendir(".");
if (d) {
while ((dir = readdir(d)) != NULL) {
printf("%s\n", dir->d_name);
}
closedir(d);
}
return(0);
}
【问题讨论】:
-
if ((d = opendir(argv[1])) != NULL) { /* work with d */ closedir(d); } else { perror(argv[1]); exit(EXIT_FAILURE); } -
您可以在命令行中将参数传递给您的程序。所有参数都通过
main的参数提供给您的代码。了解argc和argv的含义。然后只需将你得到的名字传递给opendir