当前位置:首页 » 编程语言 » c语言中的文件指针
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中的文件指针

发布时间: 2022-01-22 03:10:44

A. c语言,文件指针

fp 是用来指向 FILE 结构类型的一个指针,
fopen 执行后,fp 将指向一个 FILE 结构,这个结构代表了这个文件。

B. 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);
//关闭文件,刷新缓存到物理磁盘上

C. c语言中怎样定义文件指针

FILE
*fp
这就是
文件指针
定义方式啊
还问
文件指针怎么定义?
你是想知道FILE是什么吧?
它是一个
结构体

struct
_iobuf
{
char
*_ptr;
int
_cnt;
char
*_base;
int
_flag;
int
_file;
int
_charbuf;
int
_bufsiz;
char
*_tmpfname;
};
typedef
struct
_iobuf
FILE;

D. C语言文件指针

用强制类型转换
flag
=
(unsigned
int)(*infile);
可以用printf("flag
=
%d,
*infile
=
%d
",
flag,
*infile)测试。
补充:
上次匆匆忙忙看了你的问题,觉得有点奇怪,今天在VC上调了一下,不知道你的编译环境是什么,我在VC6.0上printf("\n
%d",*infile);
是一个大整数,应该是一个指针值,理论上也应该如此,infile本来就是一个文件句柄。
看你的需求仿佛是想在读取文件时能知道当前读取的字节数,还是应该用ftell(FILE
*)函数,如果想得到整个文件的大小,先移动到文件末尾,然后ftell(),ftell()示例如下,在VC6.0上编译调试通过:
#include
<stdio.h>
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);
//读入一个字符
}
}

E. c语言中关于文件指针的问题

做两个指针 一个记录块起始位置一个移动

F. c语言文件指针的问题

文件指针 是普通指针, 只不过它指向一个结构,这个结构 是编译器定义的 名叫 FILE 的结构, fopen 函数,返回 文件指针。指向FILE 结构。

G. 在C语言中,标准输入文件是什么,它的指针是什么

键盘系统的标准输入文件 指针stdin,显示器是系统的标准输出文件 指针stdout

H. C语言的文件的位置指针

网上给你找的,你看看哈。注意形象化的概念。
-----------------------------
在学习文件定位函数之前,需要了解一下文件位置指针的概念。文件位置指针只是一个形象化的概念,在C语言中用文件位置指针来表示文件当前读或写的数据在文件中的位置。当通过fopen函数打开文件时,可以认为文件位置指针总是指向文件的开头、第一个数据之前。

当文件位置指针指向文件末尾时,表示文件结束。当进行读操作时,总是从文件位置指针所指的位置开始,去读其后的数据,然后位置指针移到尚未读的数据之前,以备指示下一次的读(或写)操作。当进行写操作时,总是从文件位置指针所指位置去写,然后移到刚写入的数据之后,以备指示下一次输出的起始位置。

“文件指针”和“文件位置指针”是两个不同的概念。

文件指针是指在程序中定义的FILE类型的变量,通过fopen函数调用给文件指针赋值,使文件指针和某个文件建立联系(这种联系实际上是通过fopen函数说明使用文件的方式),C语言中通过文件指针实现对文件的各种操作。

摘自:东北大学出版社李一波编着《新概念C语言》
--------------------------------------

I. c语言中怎样定义文件指针

头文件后面写一个#define FILE_PATH "D:/T.txt"//引号里面是指向的文件路径

J. C语言中打开文件的指针

用指针数组就可以了,如下:
FP *fa[100];
然后让数组的每个元素指向某个打开文件即可,fprint(fa[6], "%d",x);
补充:
既然是数组当然可以用下标变化来操作