C语言 文件的指针是什么类型

作者&投稿:唐峡 (若有异议请与网页底部的电邮联系)
~ c语言文件类型指针是通过file
*fp;
这种形式进行定义的。
关于file结构在vc6中有如下定义:
#ifndef _file_defined
struct _iobuf {
    char *_ptr; //文件输入的下一个位置
    int _cnt; //当前缓冲区的相对位置
    char *_base; //指基础位置(即是文件的起始位置)
    int _flag; //文件标志
    int _file; //文件描述符id
    int _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
#include
试试
如果用的是VC6的话,在前面加个下划线
下面的参考资料里面有个例子


阿拉善右旗19843499265: C语言 文件的指针是什么类型 -
蒙尚时泰: FILE* fp

阿拉善右旗19843499265: C语言中的指针是个什么类型的变量? -
蒙尚时泰: 1.指针的类型 就是 指针 指针大小和内存的编址方式有关,只是恰好与无符号整形大小相同他的大小是 4字节(32位) 就是类似 0012ff78(16进制 32位) 注:如果你的电脑是64位电脑 那么他的大小就是8字节!2.指针是用来保存 内存地址的 内存有 按32位编制 和按64位编制之分3.为什么要给指针定义类型呢? 只有为指针定义类型 才能知道指针所指向的变量的大小 例如 int *p; 和 double *q; 那么 读取 *p时 就要从地址p开始 读取4字节读取 *q时 就要从地址q开始 读取8字节希望你对你有所帮助

阿拉善右旗19843499265: C语言中指针是什么类型的 -
蒙尚时泰: 指针的大小跟操作系统相关:系统是32位的指针就是32,64位系统就是64位, 指针的类型主要是用来区分存储的数据,比如一个char的指针,那么它指向的地址存放的值就是一个字节,如果指针没有类型,那么系统就不知道指针指向的地址到底要读取多长的数据,

阿拉善右旗19843499265: 什么是c语言里面的指针数据类型 -
蒙尚时泰: 就是说某个变量是指针类型的啊,例如int *a;就是说指针变量a指向一个整型变量在内存中的位置,并代表这个整型变量去参加一系列运算.

阿拉善右旗19843499265: C语言中指针是什么 -
蒙尚时泰: 我们都知道:C语言中的数组是指 一类 类型,数组具体区分为 int 类型数组,double类型数组,char数组 等等.同样指针 这个概念也泛指 一类 数据类型,int指针类型,double指针类型,char指针类型等等. 通常,我们用int类型保存一些整型的数据,如 int num = 97 , 我们也会用char来存储字符: char ch = 'a'. 我们也必须知道:任何程序数据载入内存后,在内存都有他们的地址,这就是指针.而为了保存一个数据在内存中的地址,我们就需要指针变量. 因此:指针是程序数据在内存中的地址,而指针变量是用来保存这些地址的变量.

阿拉善右旗19843499265: C语言里的指针是什么意思,起什么作用 -
蒙尚时泰: 1:指针是一个地址,指向的是个类型: 我们知道,c语言中的类型有int,char,bool(这个不常用),一般我们使用int,char就可以满足一般的类型需求的,如果对于变量的长度过大,就是用long ,float,double,关于各个类型使用的的长度问题,可以使...

阿拉善右旗19843499265: c语言文件类型指针 -
蒙尚时泰: c语言文件类型指针是通过FILE *fp; 这种形式进行定义的. 关于FILE结构在VC6中有如下定义: #ifndef _FILE_DEFINED struct _iobuf { char *_ptr; //文件输入的下一个位置 int _cnt; //当前缓冲区的相对位置 char *_base; //指基础位置...

阿拉善右旗19843499265: C语言中"指针的类型"和"指针所指向的类型"两个概念到底有什么区别,书上搞得我稀里糊涂 -
蒙尚时泰: int a=5; int *p=&a; p就是一个指针,它的类型是int*,也就是整形指针. 他所指向的类型是一个整形数a,也就是他所指向的类型是int

阿拉善右旗19843499265: c语言中提到指针的属性,那么指针有什么属性呢? -
蒙尚时泰: 应当是 指针的类型 吧.整型指针只能指向 整型量.float 型指针只能指向 float 型量, char 型指针只能指向 char 型量,... 这是属性.一个*号或二个*号,.... char *s, **st; // 也可以算属性,*s是 指针,**st 可以理解成指向指针的指针.

阿拉善右旗19843499265: C语言中的指针是指什么? -
蒙尚时泰: C中指针,其实就是“地址”;比如 int a1 = 10; int * pa = &a1; a1是一个int型的整数.它的值为10,假设它自己的地址是0000, pa是一个指针型的数据,本身是一个4字节长度的 指针数据类型.它自己的地址假设为1111,它的值被设置为a1的地址0000,我们就说pa的值是0000,pa指向a1,用取值符号*,*pa就可以得到a1的值10.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网