文件夹中有多个文本文件,怎么用c语言实现随机导入
3个回答
展开全部
在已知文件个数及对应文件名的情况下,可以将所有文件名存到字符串数组中,然后获取随机数,实现随机导入对应文本文件的目的。
代码如下:
int main()
{
const char *str[4] = {"t1.txt","t2.txt","t3.txt","t4.txt"};//以四个文件为例。
int a;
srand(time(NULL));
a = rand()%4;
printf("the file %s is selected\n",str[a]);
//后续对文件名为str[a]的文件进行操作即可。
}
2016-01-06
展开全部
下面的代码是刚刚给你写好的,文件名仅限"a.txt" "b.txt"和"c.txt"#include"stdio.h"
#include"stdlib.h"
int main(void)
{
FILE *fp;
char filename[]="a.txt";
int i;
void *p[3];
long filelen;
for(i=0;i<3;i++)
{
fp=fopen(filename,"rb");
if(!fp){printf("\"%s\"文件打开失败\n",filename);continue;}
fseek(fp,0,2);
filelen=ftell(fp);
fseek(fp,0,0);
p[i]=malloc((filelen+1)*sizeof(char));
fread(p[i],filelen*sizeof(char),1,fp);
*((char *)p[i]+filelen)='\0';
fclose(fp);
filename[0]++;
}
for(i=0;i<3;i++)puts(p[i]);
return 0;
}
#include"stdlib.h"
int main(void)
{
FILE *fp;
char filename[]="a.txt";
int i;
void *p[3];
long filelen;
for(i=0;i<3;i++)
{
fp=fopen(filename,"rb");
if(!fp){printf("\"%s\"文件打开失败\n",filename);continue;}
fseek(fp,0,2);
filelen=ftell(fp);
fseek(fp,0,0);
p[i]=malloc((filelen+1)*sizeof(char));
fread(p[i],filelen*sizeof(char),1,fp);
*((char *)p[i]+filelen)='\0';
fclose(fp);
filename[0]++;
}
for(i=0;i<3;i++)puts(p[i]);
return 0;
}
追问
谢谢,我研究研究
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
吧文件信息存入一个结构体数组里,rand()随机生成整数下标
追问
试过,还是打不开,我用输出函数测试是否把路径存到结构体属于中,但是,路径中的双斜杠只输出了单斜杠,我用四条斜杠来输出双斜杠,但是还是打不开
追答
D:\ADSafe\AD
路径就是单斜杠。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询