文件的定位

在文件的读写过程中,操作系统为每一个打开的文件设置了一个位置指针,指向当前读写数据的位置,每次读写一个字节后,该指针向后移动一个位置。它是一个无符号的长整数数据。用来表示当前读写的位置,在c语言中,文件读写的方式分为顺序读写和随机读写两种。顺序读写按字节顺序移动,随机移动按需要移动
下面介绍几个操作文件内部位置指针的函数
rewind(文件指针)本函数可以重置文件位置指针到文件开头
下面将实现一个例子,首先读取文件1的内容,然后把他复制给文件2

#include<stdio.h>
#pragma warning (disable:4996)
int main()
{
	FILE* fp;
	FILE* fp1;
	fp = fopen("E:\\1.txt", "r");
	fp1 = fopen("E:\\kkk.txt", "w");
	while (!feof(fp))
	{
		putchar(fgetc(fp));
	}
	rewind(fp);
	while (!feof(fp))
	{
		fputc(fgetc(fp), fp1);
	}
	fclose(fp);
	fclose(fp1);
}
C++

首先判断文件指针位置是否结束,没有结束则循环读和打印文件1中的字符,这时候循环外文件1的文件位置指针处于结束位置,通过rewind重置指针到开头,然后再将读到的字符写到文件2中即可
ftell(文件指针)返回文件位置指针的当前位置(相对于文件开头的偏移量)

文件的定位

fseek(文件指针,位移量,起始位置)
功能是改变文件位置指针的位置。位移量是指移动字节数,大于0表明往后移动,小于0表示往前移动,起始位置是指从何处开始移动

起始点表示符号数字表示
文件开始处SEEK_SET0
当前位置SEEK_CUR1
文件末尾处SEEK_END2
例如
fseek(fp,30,0) 从文件开始位置向文件结束方向移动30个字节

文件操作中的检错检测

ferror(文件指针)测试文件是否出现错误
调用结束,如果未出现错误,return 0,出错则是非0
在调用文件输入输出函数时,均产生ferror值,可以用来测试。fopen时,ferror值置0
clearerr清楚错误表示,即ferror置0
出错后,错误标志一直保留,知道对同一文件调用clearerr、rewind或者任何输入输出函数时,错误标志才会被清除。
feof判断文件是否处于结束位置。是则返回1,否则为0

C语言

文件操作

2024-11-14 19:36:47

C语言未分类

指针和二维数组

2024-11-14 11:21:55

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

Powered by atecplugins.com