c语言文件包含方式s,C语言文件操作

问题:

最近一个任务读取一个"*.dll"文件里面的字符个数,开始的时候用C语言打开文件,读取一半,就停止了,开始的时候怎么也不明白是怎么一回事,还以为是不懂得dll文件的格式的原因,就去查了查"PE"文件格式,后来碰巧解决了这个问题。才知道自己的知识太不系统,太浅薄了,本质上是因为我以"文本的形式"打开的文件,所以总是遇到提前遇到“结束符”,哎。

解答:

查找C语言的课本我才知道,从数据的组织来看,文件在C语言只分为两类:ASCII文件(即文本文件)和二进制文件,也就是说什么"*.dll","*.exe","*.3ds",全部是能以2进制形式打开,只是具体的读法不同而已,这么原始的道理我都没明白,想想真是惭愧,我还去找dll文件的格式,浅薄和愚蠢。不过问题终于解决了,我也懂得了一点知识。有机会真的应该好好学习C语言,大学的本科没学过这门课,(我们直接讲的C++),真是遗憾。其实通过读取3ds,ms3d等文件格式,发现C语言的文件操作还是应用的非常广泛和使用的也正好总结一下。

首先是文件操作的头文件包含在#include这个里面,FILE是系统预先定义的文件结构体,其相应的包含的内容就不一一说明了。

打开文件函数和常用的打开方式:

1)  FILE *fp; fp=fopen("文件的名称","文件打开方式")

2)文件打开方式:"r"打开一个文本文件,

"w"写入一个文本文件

" rb"打开一个2进制文件

"wb"写入一个2进制文件

3)关闭函数: fclose(文件指针);

4)字符输入输出函数:char  ch=fgetc(fp);从指定文件总读取一个字符

fputc(ch,fp),将一个字符输出到指定文件

5)字符串输入和输出函数:

fgets(s,n,fp),参数s是一个字符数组名,n为最多要读取的字符格式,fp是只指向该文件类型的指针。

fputs(s,fp)s为一个字符数组指针,将字符数组写入到fp指向的文件中,注意字符串

'/0'被自动舍去。

6)格式化输入输出函数:fscanf(fp,格式控制串,输入列表) fp指向文件类型的指针,

fprintf(fp,格式控制串,输入列表)

7)文件数据块输入和输出函数 这个函数经常用到,很有必要掌握

fread(buffer,size,count,fp);buffer是一个指针,指向输入数据缓冲区指针,size为要输入的字节数,count为输入的大小为size个字节的数据块的个数,fp为文件指针。

fwrite(buffer,size,count,fp);过称与上面的逆过来。

8)文件定位函数 fseek(fp,offset,position);fp文件指针,offset相对于position的偏移量。

position只能去三个值 SEEK_CUR Current position of file pointer

SEEK_END End of file

SEEK_SET Beginning of file

ftell(fp)得到文件指针的当前位置,注意用long形式

9) feof(fp)判断文件结束的位置 对2进制文件特别有用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值