在c语言中文件型指针是,c语言中文件类指针是什么

1,c语言中文件类指针是什么文件指针指向文件中的每一个字节,不用你做++操作,会自动指向下一个字节 。但是你也可以自己改变它的位置 。例如:fseekftell
2,C语言中文件指针如何定义如何指向文件FILE *fp;fp = fopen("a.txt", "r");file *fp 这就是文件指针定义方式啊还问 文件指针怎么定义?你是想知道file是什么吧?它是一个结构体:struct _iobufchar *_ptr;int_cnt;char *_base;int_flag;int_file;int_charbuf;int_bufsiz;char *_tmpfname;};typedef struct _iobuf file;FILE *fp【在c语言中文件型指针是,c语言中文件类指针是什么】
3,在c语言中文件指针是结构体类型吗谢谢指针都是一个地址 , 直观上看就是一个数;你想问的应该是文件信息在系统定义中的描述FILE定义在stdio.h中typedef struct int _cleft; //缓冲区中剩下的字符数 int _mode; //文件操作方式 char *_next; //文件当前读写位置 char *_buff; //文件缓冲区位置}FILE;第二个struct student是定义了一个student结构体,这个明白吧 。第一个是用typedef把struct student这个结构体类型名字重新定义为student,也就是说struct student和student表示同一个事物,都是一个类型的标识符,比如 typedef int zhengshu; 就是你把整型int重命名为zhengshu,下面定义:int i; 和 zhengshu i; 两句就是等价的了
4,C语言 文件的指针是什么类型FILE* fpc语言文件类型指针是通过file *fp; 这种形式进行定义的 。关于file结构在vc6中有如下定义:#ifndef _file_definedstruct _iobufchar *_ptr; //文件输入的下一个位置int _cnt; //当前缓冲区的相对位置char *_base; //指基础位置(即是文件的起始位置)int _flag; //文件标志int _file; //文件描述符idint _charbuf; //检查缓冲区状况,如果无缓冲区则不读取int _bufsiz; //文件缓冲区大小char *_tmpfname; //临时文件名 };typedef struct _iobuf file;#define _file_defined#endifc程序用不同的file结构管理每个文件 。程序员可以使用文件,但是不需要知道file结构的细节 。实际上 , file结构是间接地操作系统的文件控制块(fcb)来实现对文件的操作的,如下图: 上面图中的_file实际上是一个描述符,作为进入打开文件表索引的整数 。文件是存放在物理磁盘上的,包括文件控制块(fcb)和数据块 。文件控制块通常包括文件权限、日期(创建、读取、修改)、拥有者、文件大小、数据块信息 。数据块用来存储实际的内容 。当打开一个文件时,程序会将物理磁盘上的文件数据块读入到内存,然后通过文件指针的移动读取内存中的文件数据 。相关函数:file *fopen( char *file, char *open_mode ); //打开文件,读文件到内存,返回文件信息结构指针int fread( char s, int size, int num, file *fp ); //按字节读取文件内容到s中int fwrite( char s, int size, int num, file *fp ); //按字节将s地址中的数据写到文件中char *fgets( char *s, int max_size, file *fp); //读一行数据到缓冲区s中int fseek( file *fp, long offset, int whence); //移动文件指针到指定位置void rewind(file *fp); //回到文件头long ftell(file *fp); //得到当前文件偏移位置fclose(fp); //关闭文件,刷新缓存到物理磁盘上FILE *fp = fopen(.....)这个好像是C++的语法,C语言好像不可以这么用在前面加上#include <sys/types.h>#include <sys/stat.h>试试如果用的是VC6的话,在前面加个下划线下面的参考资料里面有个例子5,c语言文件类型指针c语言文件类型指针是通过FILE *fp; 这种形式进行定义的 。关于FILE结构在VC6中有如下定义:#ifndef _FILE_DEFINEDstruct _iobufchar *_ptr; //文件输入的下一个位置int _cnt; //当前缓冲区的相对位置char *_base; //指基础位置(即是文件的起始位置)int _flag; //文件标志int _file; //文件描述符idint _charbuf; //检查缓冲区状况,如果无缓冲区则不读取int _bufsiz; //文件缓冲区大小char *_tmpfname; //临时文件名 };typedef struct _iobuf FILE;#define _FILE_DEFINED#endifC程序用不同的FILE结构管理每个文件 。程序员可以使用文件 , 但是不需要知道FILE结构的细节 。实际上,FILE结构是间接地操作系统的文件控制块(FCB)来实现对文件的操作的 , 如下图: 上面图中的_file实际上是一个描述符,作为进入打开文件表索引的整数 。文件是存放在物理磁盘上的,包括文件控制块(FCB)和数据块 。文件控制块通常包括文件权限、日期(创建、读取、修改)、拥有者、文件大小、数据块信息 。数据块用来存储实际的内容 。当打开一个文件时,程序会将物理磁盘上的文件数据块读入到内存,然后通过文件指针的移动读取内存中的文件数据 。相关函数:FILE *fopen( char *file, char *open_mode ); //打开文件 , 读文件到内存,返回文件信息结构指针int fread( char s, int size, int num, FILE *fp ); //按字节读取文件内容到s中int fwrite( char s, int size, int num, FILE *fp ); //按字节将s地址中的数据写到文件中char *fgets( char *s, int max_size, FILE *fp); //读一行数据到缓冲区s中int fseek( FILE *fp, long offset, int whence); //移动文件指针到指定位置void rewind(FILE *fp); //回到文件头long ftell(FILE *fp); //得到当前文件偏移位置fclose(fp); //关闭文件,刷新缓存到物理磁盘上FILE 类型是一个结构,文件打开成功时,对它作了内存分配和初始化 。文件读写和文件操作有许多程序,除数据读写和转换外还有许多操作,读写和操作既用到FILE结构里的内容,同时也修改和更新与文件有关的信息 。例如fseek,ftell,fgetpos,fsetpos,rewind,这些虽不是读写,但它们操作文件 。文件指针是FILE的一个成员 。用强制类型转换flag = (unsigned int)(*infile);可以用printf("flag = %d,*infile = %d ", flag, *infile)测试 。补充:上次匆匆忙忙看了你的问题,觉得有点奇怪,今天在vc上调了一下,不知道你的编译环境是什么,我在vc6.0上printf("\n %d",*infile); 是一个大整数,应该是一个指针值 , 理论上也应该如此,infile本来就是一个文件句柄 。看你的需求仿佛是想在读取文件时能知道当前读取的字节数,还是应该用ftell(file *)函数,如果想得到整个文件的大?。纫贫轿募┪玻缓骹tell() , ftell()示例如下 , 在vc6.0上编译调试通过:#include void main() { char k; file *infile; char in_name[] = "test.txt"; //接收要打开的文件名 infile = fopen(in_name,"rb"); //假设文件能正常打开 while(!feof(infile)) //判断是否文件尾 { printf("%d\n", ftell(infile)); k=fgetc(infile); //读入一个字符 } }

    推荐阅读