这样做没有任何意义,不如把读取的内容保持在变量当中,节省空间时间。如果非要反复读取的话可以使用rewind函数把文件指针重置。
函数名: rewind()
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头
注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。rewind函数作用等同于 (void)fseek(stream, 0L, SEEK_SET)
循环读取多个文件的内容。
把多个文件名存在一个字符串数组当中。使用循环语句反复打开-读取-关闭即可。
例如:
char * s[3]={"文件一","文件二","文件三"}for(i=0i<3i++){
f=fopen(s[i]) //打开第i个文件
//读取数据
fclose(f)//关闭文件
}
下面的代码是刚刚给你写好的,文件名仅限"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=0i<3i++)
{
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=0i<3i++)puts(p[i])
return 0
}
ansys 中循环:1、命令流:DO,i,1,100 ...( *** 作语句)ENDDO 2、举例:DO,I,1,5 ...( *** 作语句)ENDDO 最后的1,表示每次增量为1,i从1变到5,每次增量为1欢迎分享,转载请注明来源:内存溢出
评论列表(0条)