文件读写位置标志为什么不是指针
① c++ 文件读操作 位置指针问题
换行的地方有个回车符和换行符,各占一个字节了,
#include"stdafx.h"
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#definePAUSEintpause;
scanf("%d",&pause);
int_tmain(intargc,_TCHAR*argv[])
{
FILE*pFile;
pFile=fopen("me.txt","r");
chara[5],b[5],c[5];
memset(a,0,5);
memset(b,0,5);
memset(c,0,5);
fread(a,1,4,pFile);
printf("%s ",a);
intpos;
pos=ftell(pFile);
printf("pos=%d ",pos);
fread(b,1,4,pFile);
//文件指针从当前位置前进2个字节,因为有个
fseek(pFile,2,SEEK_CUR);
printf("%s ",b);
pos=ftell(pFile);
printf("pos=%d ",pos);
fread(c,1,4,pFile);
printf("%s ",c);
pos=ftell(pFile);
printf("pos=%d ",pos);
fclose(pFile);
PAUSE;
return0;
}
② C里面文件的位置指针是指什么
位置指针是用来表示在文件中读取和写入位置的指针。文件打开时文件指针应在文件开始。Append 方式打开,文件指针应在文件尾。
想让文件指针指到文件开始,用 rewind(fp)即可。
用fseek ( fp , 0 , SEEK_SET ); 也可。
当然,用 long int ftell ( FILE * stream ); 找文件指针偏移位置,偏移为0,就在开始,不为0,仍需用 rewind,或 fseek 移动指针到开始。
③ c语言中char ch=0;与char ch='0';与char ch='\0';的意思是什么
char说明数据类型是字符型,ch是变量名(可称为字段)。
fgetc()
使用举例:
表示从D:\\demo.txt文件中读取一个字符,并保存到变量ch中。
拓展资料
在文件内部有一个位置指针,用来指向当前读写到的位置,也就是读写到第几个字节。在文件打开时,该指针总是指向文件的第一个字节。使用fgetc
函数后,该指针会向后移动一个字节,所以可以连续多次使用fgetc读取多个字符。
注意:这个文件内部的位置指针与C语言中的指针不是一回事。位置指针仅仅是一个标志,表示文件读写到的位置,也就是读写到第几个字节,它不表示地址。文件每读写一次,位置指针就会移动一次,它不需要你在程序中定义和赋值,而是由系统自动设置,对用户是透明的。
【示例】在屏幕上显示
D:\\demo.txt
文件的内容。
在D盘下创建demo.txt文件,输入任意内容并保存,运行程序,就会看到刚才输入的内容全部都显示在屏幕上。
该程序的功能是从文件中逐个读取字符,在屏幕上显示,直到读取完毕。
程序第14行是关键,while
循环的条件为(ch=fgetc(fp))
!=
EOF。fget()
每次从位置指针所在的位置读取一个字符,并保存到变量
ch,位置指针向后移动一个字节。当文件指针移动到文件末尾时,fget()
就无法读取字符了,于是返回
EOF,表示文件读取结束了。
④ 关于c语言文件读写问题和文件读写标志的疑问
先回答你第一个问题:因为fgets(out,5,fp)读取的是你输入字符串以后的字符,那是不确定的,所以会出现乱码,
第二个问题:w+是将文件以读写方式打开,如果里面存有内容将会清零,以供写入
第三个问题:当你输入完字符以后文件的指针是指向末尾的,所以fget(out,5,fp)得到的是不是从头开始的字符,而是从最后一个字符以后开始的,
所以,你的问题就很容易解决了,只要让文件指针重新指向文件头即可:在putchar(10)后面加上一句:rewind(fp)就可以了
⑤ 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;//临时文件名
};
typedefstruct_iobufFILE;
#define_FILE_DEFINED
#endif
C程序用不同的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中
intfseek( FILE *fp, long offset, int whence); //移动文件指针到指定位置
void rewind(FILE *fp); //回到文件头
long ftell(FILE *fp); //得到当前文件偏移位置
fclose(fp); //关闭文件,刷新缓存到物理磁盘上
⑥ C语言的文件的位置指针
网上给你找的,你看看哈。注意形象化的概念。
-----------------------------
在学习文件定位函数之前,需要了解一下文件位置指针的概念。文件位置指针只是一个形象化的概念,在C语言中用文件位置指针来表示文件当前读或写的数据在文件中的位置。当通过fopen函数打开文件时,可以认为文件位置指针总是指向文件的开头、第一个数据之前。
当文件位置指针指向文件末尾时,表示文件结束。当进行读操作时,总是从文件位置指针所指的位置开始,去读其后的数据,然后位置指针移到尚未读的数据之前,以备指示下一次的读(或写)操作。当进行写操作时,总是从文件位置指针所指位置去写,然后移到刚写入的数据之后,以备指示下一次输出的起始位置。
“文件指针”和“文件位置指针”是两个不同的概念。
文件指针是指在程序中定义的FILE类型的变量,通过fopen函数调用给文件指针赋值,使文件指针和某个文件建立联系(这种联系实际上是通过fopen函数说明使用文件的方式),C语言中通过文件指针实现对文件的各种操作。
摘自:东北大学出版社李一波编着《新概念C语言》
--------------------------------------
⑦ 文件指针和文件内部指针的区别
开头那段文字表述得已经很清楚了。文件指针是由fopen函数赋值的,它实际上是指向一个文件信息结构体的指针,这个结构体在打开文件时由系统创建,其中就包含了“文件内部指针”——指向文件下一个字符的指针。但是操作的时候,所谓文件内部指针对用户是透明的,我们只要通过文件指针就可以把读、写文件的事情搞定了……
⑧ 【C++】 文件指针回到开头
在定位前对流状态标志进行清除就可以了:
inf.clear();
inf.seekg(0,ios::beg);
还有一种解决办法是
inf.close();
inf.open(file1,ios::in|ios::binary); 关闭文件,然后再打开该文件
⑨ 文件指针是什么文件指针的值又是什么
在文件操作系统中,同时打开的文件个数是受限的,因此在操作系统中对于文件的操作专门设置了一个区域,这个区中为每个文件操作开设了一块操作数据区,其中每个区对应一个文件操作,记录文件位置,当前文件指针位置等,如果进行文件操作需要获得系统分配的一块有效的数据区,这个数据区的编号就是文件句柄,在c中是FILE*类型
操作数据区中,有一个文件指针,存放当前可读写文件位置,是一个字节计数值,在打开当前文件后,这个指针指向文件第1个字符,取值是0,那么如果马上读写文件都是从文件第1个字节开始,假定写入或读取了1个字节内容,文件指针在操作完成后自动变为1,指向下一个可操作的位置。文件指针可以顺序后移(增加值)也可以前移(减少值)当然要借助特殊函数。
假定要获取文件尺寸,可以在打开文件后(文件指针内容为0)利用文件指针操作函数(比如feek)令文件指针转到文件尾部,这时文件指针取值就是文件的实际字节数了。
⑩ 读写位置指针和文件位置指针是一回事吗
从哪里来的这么两个词?读写位置指针 和 文件位置指针
C中操作一个文件 ,只会有一个文件指针的啊 , 这个指针指向一个结构体,结构体中有关于当前打开文件的各种信息。
如有问题,可以把你看到或读到的内容,粘出一些来,供分析。