关于指针与字符串保存文件
目的:取得目录下所有文件名,保存成txt文件。
问题:使用字符指针数组成功取得文件名,保存指针数组时不能成功保存已经取得的文件名。
自己不知道问题出在那里,希望大家来帮我解答一下,希望能具体些(因为本人是超级初学者),谢谢。
使用编译器:DEV-C++ 4992
代码如下:
#include <unistd.h>
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <sys/stat.h>
#include <stdlib.h>
int GetFileName(char *Directory);
int SaveFileName(int Num);
char *ch[100];
int main(int argc,char *argv[])
{
SaveFileName(GetFileName(argv[1]));
return 0;
}
int GetFileName(char *Directory)
{
DIR *d;
struct dirent *dr;
struct stat sbuf;
int i=0;
if((d=opendir(Directory)) == NULL)
return;
chdir(Directory);
while((dr=readdir(d)) != NULL)
{
stat(dr->d_name,&sbuf);
if(S_ISDIR(sbuf.st_mode))
continue;
else
ch[i++]=dr->d_name;
}
closedir(d);
return i;
}
int SaveFileName(int Num)
{
FILE *fp;
int i;
fp=fopen("test.txt","w");
for(i=0;i<=Num;i++)
{
fprintf(fp,"%s\n",ch[i]);
printf("%d : %s\n",i,ch[i]);
}
fclose(fp);
return 0;
}