第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写

Slides:



Advertisements
Similar presentations
集团公司火力发电厂热工自动控 制系统的投入情况和问题分析 东北所热自室. 自动控制系统是机组热工专业管理水 平和设备状态的集中体现,一台机组 的自动投入率和自动调节品质体现了 机组的整体水平。同时,自动控制效 果的优劣,也是机组节能降耗目标的 实现手段和基础。
Advertisements

首页 全国高等学校招生考试统一考试 监考员培训 广州市招生考试委员会办公室.
人口增长.
第一章 会计法律制度 补充要点.
二、个性教育.
Chap 12 文件 12.1 将短句“Hello World”写入到文件 12.2 读取学生成绩文件 12.3 文件复制
大家都来关注国家安全 南京市江宁中学 傅德柱.
補充: Input from a text file
面向海洋的开放地区——珠江三角洲 山东省高青县实验中学:郑宝田.
雷 霆 战 机 By—谷恩轩&余万全.
存货的核算 一、项目任务 1、原材料核算 ——按实际成本核算 ——按计划成本核算 2、低值易耗品及包装物核算 3、存货清查的核算
第 5 章 文件I/O操作.
C程序设计 第10章 文 件 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
第十三章 文件.
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
劳动关系 第十二讲 主讲教师:于米          学时:32.
複習 struct score_Type{ int chinese,english; }; struct my_Type{
C File System.
C 程序设计实例 1. 问题描述 2. 数据结构 3. 算法分析 4. 参考程序 5. 改进说明.
计算概论 第二十一讲 文件操作 北京大学信息学院.
文件管理 File Management.
第10章 文件操作.
第十一章 文件 文件概述 文件操作 文件操作实例 本章小结 作业: 练习:
程序讲解 第一题: 将指定文件的m行到n行字符写到显示屏上,m和n值从键盘输入。 运行时输入及结果: please enter m,n:
第10章 文件.
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
第10章 文件操作.
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
C 語言簡介 - 2.
11.1 文件的基本概念 11.2 文件的打开与关闭 11.3 文件的顺序读写 11.4 文件的随机读写 11.5 文件检测
函数申明、定义、调用 申明: void sort(float a[], int n); void sort(float *a, int m); void sort(float *a, int); void sort(float *, int);
第十二章 文件 12.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
6.4.1指针与二维数组 1、二维数组结构的分析 设有数组定义为:int a[3][4]; 则有: a表示数组在内存中的首地址。
1. 說明一個一維整數陣列passwd,下標範圍0至49 2. 在屏幕顯示 "Enter password"
fp=fopen("CD2.dat","wb"); fwrite(&min,8,1,fp); fclose(fp);
第4章 MATLAB文件操作 4.1 文件的打开与关闭 4.2 文件的读写操作 4.3 数据文件定位.
檔案 將資料存入磁碟或由磁碟取出資料的方式, 稱為檔案存取處理。 C語言的檔案處理 C++語言的檔案處理.
程式設計 博碩文化出版發行.
第九章 文件 程序数据标准输入输出设备 程序数据文件 数据流和文件 文件的打开和关闭 文件读写函数.
File(檔案處理) 學習目標:開檔、讀檔、更新檔與關閉檔案.
THE C PROGRAMMING LANGUAGE
第10章 文件操作.
第十章 文件操作.
第10章 檔案與資料夾處理 10-1 C語言的檔案輸入與輸出 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫
Linux 文件操作——系统调用和标准 IO 库
第5章 文件.
第9章 文件操作 文件 使用文件的目的 操作系统管理数据的基本单位 存储在外存储器上的数据的集合
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
研讨课4 文件操作.
第十三章 文件.
PHP5與MySQL4 入門學習指南 凱文瑞克 著 第 16 章 檔案處理.
一、文件的基本概念 第十三章 文 件 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一
第7章 输入/输出流 文件和I/O流概述 标准I/O流的对象及其成员函数 文件流.
第3章 變數、算術運算、 數學函數及輸入輸出.
實習十 開讀檔練習.
C標準輸出入函數庫 與 作業系統.
File Input and Output Chap. 11: 施威銘的書 Chap. 7: K&R.
第十一章 文件 11.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
本节内容 文件读写 视频提供:昆山爱达人信息技术有限公司.
静定结构位移计算 ——互等定理 主讲教师:戴萍.
本节内容 访问模式 视频提供:昆山爱达人信息技术有限公司.
函数申明、定义、调用 申明: void sort(float a[], int n); void sort(float *a, int m); void sort(float *a, int); void sort(float *, int);
第十一章 文件 11.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
第13章 文 件.
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
結構、檔案處理(Structure, File)
第十二章 位运算.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab2.
C语言程序设计 第13章 文件操作.
陣列與檔案處理 授課:張朝麟 日期:2009/3/11.
Presentation transcript:

第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写 第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写 7.6 文件检测函数

7.1 文件的基本概念 文件的概念 文件是指存储在外存中数据的集合。 操作系统是以文件为单位对数据进行管理。 7.1 文件的基本概念 文件的概念 文件是指存储在外存中数据的集合。 操作系统是以文件为单位对数据进行管理。 系统默认的标准输入文件是键盘,标准输出文件是显示器。

文件的类型: 根据数据的存储形式,将文件分为ASCII码和二进制文件。ASCII码文件(即文本文件)中的每个字节表示一个字符;二进制文件中的数据与其在内存中的表示形式一致。 数据文件的存取以字节为单位,这种文件被称作流式文件。

7.2 文件类型指针 C程序中,每个被使用文件的相关信息(如文件名、文件状态、文件位置等)都由一个结构体变量保存,该结构体类型由系统已定义好,取名为FILE。在stdio.h文件中有它的定义。 对文件的处理全部由函数来实现。在使用文件之前,首先要定义指向FILE结构体类型的指针变量,保存打开文件的信息。

7.3 文件的打开与关闭 1.文件打开函数fopen( ) 格式为: FILE *fp; fp=fopen(文件名, 文件使用方式); 7.3 文件的打开与关闭 1.文件打开函数fopen( ) 格式为: FILE *fp; fp=fopen(文件名, 文件使用方式); 例: fp=fopen("a1", "r") "r" 方式是以只读方式,打开一个已存在的文件,如果文件不存在则出错,fopen函数将返回一个空指针值NULL。

只写打开或建立一个文本文件,只允许写数据 文件使用 方式 含 义 r 只读打开一个文本文件,只允许读数据 w 只写打开或建立一个文本文件,只允许写数据 a 追加打开一个文本文件,并在文件末尾写数据 rb 只读打开一个二进制文件,只允许读数据 wb 只写打开或建立一个二进制文件,只允许写数据 ab 追加打开一个二进制文件,并在文件末尾写数据 r+ 读写打开一个文本文件,允许读和写 w+ 读写打开或建立一个文本文件,允许读和写 a+ 读写打开一个文本文件,允许读,或在文件末追加数据 rb+ 读写打开一个二进制文件,允许读和写 wb+ 读写打开或建立一个二进制文件,允许读和写 ab+ 读写打开一个二进制文件,允许读,或在文件末追加数据

2.文件关闭函数fclose( ) 格式: fclose(文件指针) 例:fclose(fp);

7.4.1 字符读写函数fgetc( )和fputc( ) 7.4 文件的读写 7.4.1 字符读写函数fgetc( )和fputc( ) 1.读字符函数fgetc( ) 功能:从指定的文件中读一个字符。 格式:字符变量=fgetc(文件指针); 例:ch=fgetc(fp); 此语句是从fp指向的文件中读取一个字符并存入ch中。 说明: 在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。 使用fgetc函数顺序读字符时,若遇到文件结束符,对于文本文件,该函数返回EOF(-1)值。而对于文本文件和二进制文件, 还可以通过feof函数来测试。当遇到文件结束时,feof返回值为1;否则返回0。

2. 写字符函数fputc( ) 功能:将一个字符写入指定的文件中。 格式:fputc(字符,文件指针); 例:fputc('a', fp); 将字符'a'写入fp所指向的文件中。

7.4.2 字符串读写函数fgets( )和fputs( ) 功能:从指定的文件中读一个字符串到字符数组中。 格式: fgets(字符数组名,n,文件指针); 其中,n是一个正整数。表示从文件中读出的字符个数不超过n-1个,并自动在读出的字符串尾部加上结束标志‘\0’。 例如:fgets(str,n,fp); 此语句从fp所指的文件中读出n-1个字符送入字符数组str中。

2. 写字符串函数fputs( ) 功能:向指定的文件写入一个字符串。 格式:fputs(字符串,文件指针); 例如:fputs("abcd",fp); 此语句是把字符串“abcd”写入fp所指的文件中。

7.4.3 数据块读写函数fread( )和fwrite( ) 读数据块函数的调用格式: fread(buffer, size, count, fp); 写数据块函数的调用格式: fwrite(buffer, size, count, fp); 其中,buffer是一个指针。在fread函数中,它表示存放读入数据块的首地址。在fwrite函数中,它表示存放要写数据块的首地址。size表示数据块的大小(即字节数)。count 表示要读写的数据块块数。fp表示文件指针。 例如:fread(fa, 4, 5, fp); 从fp所指的文件中,每4个字节(一个实数)存入实型数组fa的一个元素,本次共读取5个实数存入数组fa中。

7.4.4 格式化读写函数fscanf( )和fprintf( ) 调用格式: fscanf(文件指针,格式控制串,输入表列); fprintf(文件指针,格式控制串,输出表列); 例如:fscanf(fp,"%d,%s", &i, s); 从fp指针所指的文件的当前位置读取一个整数和一个字符串。 fprintf(fp,"%6.2f,%c", j, ch); 将变量j和ch分别以实型和字符型存入fp指针所指的文件中(两个数据之间用逗号分隔)。

对文件操作必须先打开文件,对文件操作后关闭文件。文件操作顺序可以是顺序读/写,也可以是随机读/写。 7.5 文件的随机读/写 对文件操作必须先打开文件,对文件操作后关闭文件。文件操作顺序可以是顺序读/写,也可以是随机读/写。 7.5.1 rewind函数 rewind函数功能是使文件内部的位置指针移到文件首。 调用格式为:rewind(文件指针);

fseek函数用来移动文件内部位置指针。 调用格式为: fseek(文件指针,位移量,起始点); 默认标识符 数字表示 文件首 SEEK_SET 当前位置 SEEK_CUR 1 文件末尾 SEEK_END 2 例如:fseek(fp, -10L, 2); 将文件位置指针从文件末尾向文件头方向移10个字节

7.5.3 ftell函数 ftell函数的功能是得到流式文件中的当前读写位置,用相对于文件首的位移量来表示。 其调用格式:ftell(文件指针); 该函数具有long型返回值,如果其返回值为-1L,则表示对当前文件的操作有误。例如: if(ftell(fp)==-1L) printf("File error!\n");

7.6 文件检测函数 7.6.1文件结束标志检测函数feof 函数调用格式:feof(文件指针); 7.6 文件检测函数 7.6.1文件结束标志检测函数feof 函数调用格式:feof(文件指针); 功能:判断当前文件的读写指针是否指向文件结束符。如果指向文件尾,则返回值为1;否则为0。 7.6.2读写文件出错检测函数ferror 函数调用格式:ferror(文件指针); 功能:检查文件在使用各种数据读写函数进行读写时是否出错。如果ferror返回值为0,表示未出错;否则表示有错。 在执行fopen函数时,ferror函数的初始值自动置为0。

例:统计二进制文件letter.dat中的字符个数。 #include<stdio.h> #include<stdlib.h> void main( ) { FILE *fp; long count=0; if((fp=fopen(“letter.dat”, “rb”))==NULL) { printf(“Cannot open the file.\n”); exit(0); } while(!feof(fp)) { fgetc(fp); count++; printf(“count=%ld\n”, count-1); fclose(fp);