C:readdir的d_名称无法转换为字符串
我的代码如下:C:readdir的d_名称无法转换为字符串,c,directory,operating-system,filesystems,system-calls,C,Directory,Operating System,Filesystems,System Calls,我的代码如下: #include <stdio.h> #include <dirent.h> #include <string.h> int main(void) { DIR *myDir; struct dirent *myFile; myDir = opendir("/"); while ((myFile = readdir(myDir))) { char myStr[256] = "foo&
#include <stdio.h>
#include <dirent.h>
#include <string.h>
int main(void) {
DIR *myDir;
struct dirent *myFile;
myDir = opendir("/");
while ((myFile = readdir(myDir)))
{
char myStr[256] = "foo";
printf("%s\n", myFile->d_name);
printf("%s\n", myStr);
}
closedir(myDir);
return (0);
}
上述代码有效。但后来我尝试替换char myStr[256]=foo;按char myStr[256]=myFile->d_name;,当我试图编译时,我得到了错误消息error:invalid initializer
知道怎么修理吗?似乎我需要为char myStr[256]选择另一种类型,但我不确定应该选择哪种类型…数组的初始值设定项必须是文本,它不会从变量复制 要复制字符串,请使用strcpy
请注意,我可以通过使文件名超过255个字符来破解你的程序。我认为你的文件名不能超过255个字符。谷歌同意。不过你很幸运。也许明年他们会升级到511!
char myStr[256];
strcpy(myStr, myFile->d_name);
printf("%s\n", myStr);