如何用一个循环去读取十个不同文件的文件内容?
发布网友
发布时间:2022-04-22 09:30
我来回答
共2个回答
热心网友
时间:2023-10-27 10:22
循环读取一个文件的内容。
这样做没有任何意义,不如把读取的内容保持在变量当中,节省空间时间。如果非要反复读取的话可以使用rewind函数把文件指针重置。
函数名: rewind()
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头
注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。rewind函数作用等同于 (void)fseek(stream, 0L, SEEK_SET);
循环读取多个文件的内容。
把多个文件名存在一个字符串数组当中。使用循环语句反复打开-读取-关闭即可。
例如:
char * s[3]={"文件一","文件二","文件三"};
for(i=0;i<3;i++){
f=fopen(s[i]); //打开第i个文件
//读取数据
fclose(f);//关闭文件
}
热心网友
时间:2023-10-27 10:22
用二进制文件方法打开。
(1)读gif_id,输出gif_id, 6 bytes
(2)读logical_screen_descriptor(结构),并输出
(3)如果 ScrHd.flag_GC_table == 1,
则有全局色表,则读全局色表,并输出
(4)循环,
检查gif块的类型,按块的类型读块,并输出
若:
case: 0x2c -- 它是,Image Descriptor(结构),读块并输出
判断有无色表,有则读块并输出,
下面 1 byte 表示 lZW min Code Size,读并输出
子块 (include size, bytes*size data) 读块并输出
子块 (include size, bytes*size data) 读块并输出
可能有很多子块,读块并输出
直到 0x00 读块并输出,
break;
若case: 0x21 0xf9 -- 控制块,读到 0x00, 并输出
break;
若case: 0x21 0xFe -- 注解块,读到 0x00,并输出
break;
若case: 0x21 0x01 -- 普通文本块,读到 0x00,并输出
break;
若case: 0x21 0xff -- 应用程序块,读到 0x00,并输出
break;
若case: 0x3B -- END 第一个图片完毕的标识,并输出
break;
default: 打印“文件错误”break;
(5)关闭文件。