C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.

Slides:



Advertisements
Similar presentations
1 数学软件 Matlab —— 文件操作. 2 内容提要 文件的打开与关闭 文本文件的写与读 二进制文件的写与读.
Advertisements

数据结构与算法 第九次上机作业讲评 助教:钟威 邮箱: 第一部分 文本的向量空间模型 下载搜狗新闻分类语料环境,搜狗分类语料。该语料一共有九个 类,每个类在一个文件夹下,内容分别是: C 财经 C IT C 健康 C
类风湿性关节炎的中医治疗 广州中医药大学第一附属医院 陈纪藩.
第五课 让挫折丰富我们的人生 挫折面前也从容.
第一章 C语言概述 计算机公共教学部.
第二章 项目一:企业厂区与车间平面设计 1.
法 师 带 观 修 互 动 答 题 法 师 答 疑. 法 师 带 观 修 互 动 答 题 法 师 答 疑.
補充: Input from a text file
雷 霆 战 机 By—谷恩轩&余万全.
第11章 输入输出流类.
第 5 章 文件I/O操作.
C程序设计 第10章 文 件 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
第十三章 文件.
複習 struct score_Type{ int chinese,english; }; struct my_Type{
C语言程序设计 第十二章 位运算.
C File System.
高级语言程序设计 主讲人:陈玉华.
计算概论 第二十一讲 文件操作 北京大学信息学院.
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
第7章 Linux环境编程.
第10章 文件操作.
第十一章 文件 文件概述 文件操作 文件操作实例 本章小结 作业: 练习:
第9章 自訂資料型態 – 結構 9-1 結構資料型態 9-2 結構陣列 9-3 指標與結構 9-4 動態記憶體配置 9-5 聯合資料型態
第10章 文件操作.
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
C 語言簡介 - 2.
C语言程序设计 李祥.
程式設計 博碩文化出版發行.
NO.3.1 SOPC技术 第5章 Nios II 系统的外围设备.
11.1 文件的基本概念 11.2 文件的打开与关闭 11.3 文件的顺序读写 11.4 文件的随机读写 11.5 文件检测
第十二章 文件 12.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
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 二進位檔案的讀寫
ACM程序员大赛讲座 _____C语言程序设计要点 讲授人:王敬华.
Linux 文件操作——系统调用和标准 IO 库
第5章 文件.
第9章 文件操作 文件 使用文件的目的 操作系统管理数据的基本单位 存储在外存储器上的数据的集合
第三章 数据类型、运算符与表达式.
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
研讨课4 文件操作.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
一、文件的基本概念 第十三章 文 件 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一
第7章 输入/输出流 文件和I/O流概述 标准I/O流的对象及其成员函数 文件流.
第3章 變數、算術運算、 數學函數及輸入輸出.
Chapter 7 掌控記憶體.
第1章 绪论 北京师范大学 教育技术学院 杨开城.
實習十 開讀檔練習.
機械製造期末報告- 加工切削 組員:高德全4A 林威成4A 陳柏源4A
C標準輸出入函數庫 與 作業系統.
本节内容 文件读写 视频提供:昆山爱达人信息技术有限公司.
静定结构位移计算 ——互等定理 主讲教师:戴萍.
第二章 类型、对象、运算符和表达式.
第13章 文 件.
实验二:添加Linux系统调用及熟悉常见系统调用
結構、檔案處理(Structure, File)
第十二章 位运算.
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
C 程式設計— 字元與字串 台大資訊工程學系 資訊系統訓練班.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab2.
資料!你家住哪裏? --談指標 綠園.
C语言程序设计 第13章 文件操作.
陣列與檔案處理 授課:張朝麟 日期:2009/3/11.
Presentation transcript:

C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班

課程大綱 C語言簡介 基本資料型態, 變數, 基本輸入輸出 控制敘述- 選擇控制與重覆控制 陣列 函式 指標 字元與字串 結構 檔案處理

本次課程大綱 C語言的檔案處理 檔案類型 開檔與關檔 檔案I/O函式 隨機式存取 二進位檔的存取

C語言的檔案觀念 C語言將資料都看成由一連串字元組成的資料流(stream). 標準檔案I/O函數在fopen()開啟一個檔案後,C語言會要求作業系統在主記憶體保留一塊空間做為檔案I/O的缓衝區.所有檔案I/O動作則是對這塊缓衝區做字元的讀取跟寫入,直到檔案被關閉後fclose(),檔案的內容才會真正寫回儲存設備.

檔案類型 文字檔: 二進位檔: 方便閱讀,但較無保密性。其他使用者也可以透過純文字編輯器開啟並成功閱讀。 I/O速度較快並具有保密性,但檔案內容需透過程式轉譯才能閱讀。二進位檔的資料是由一連串的位元組(Byte)所組合,通常使用在某些特殊用途(例如圖檔)

文字資料與二元資料 文字資料流以字串形成儲存在檔案中,以’\n’做為換行字元,以’^Z’做為EOF 二元資料流與記憶體相同格式來儲存在檔案中

檔案的開啟跟關閉 fopen()跟fclose() 對某個檔案進行讀取寫入的動作前,一定要先開啟檔案,當將資料處理完成後,還要關閉檔案,我們稱之為缓衝式的I/O處理,其功能在增進檔案處理效率,因而無須時時讀取磁碟機.

FILE FILE是在stdio.h中宣告的結構體,主要用於存放I/O stream在主記憶體的位址. FILE能記錄下一個讀取或寫入字元目前位於stream的位址,檔案讀寫狀況,及檔案讀寫是否有錯誤發生.

fopen() FILE *fopen (char filename, char mode); filename代表要開啟的檔案名稱. 若開啟檔案有誤,則回傳NULL。

fopen()開啟檔案的模式 Mode 功能說明 “r” 開啟一個只能讀取資料的檔案 “w” 建立用來寫入資料的檔案,若檔案存在,其內容會被覆蓋 “a” 將新的資料加在檔尾;若檔案不存在,則另建新檔 “+” 提供可寫可讀的功能,但不能單獨存在 以上4種模式可以混合使用, 例如 “rw” “ra” “r+”… 代表文字資料流的話要加”t”, 內定是文字模式 代表二元資料流的話要加”b”

fclose() int *fclose(FILE *fp); 當回傳值為-1時,代表關閉檔案時發生錯誤。當回傳值等於0,則表示成功關閉檔案 例子: 嘗試開啟檔案跟關閉檔案.

I/O函式 C語言的檔案I/O處理功能是由函式庫所提供的,ANSI提供一套標準檔案I/O函式,使在不同作業系統下,能有一套標準的I/O函式.

字元I/O函式 fgetc()跟fputc() int fgetc(FILE* fp); 傳回所讀取的字元, 如果是EOF則代表讀到檔案結尾. Int *fputc(int c, FILE *fp); 傳回EOF表示寫入過程有錯誤,傳回c則表示成功寫入.

例子 例子1: 輸入資料到檔案中. 例子2: 讀取一個文字檔,並印在螢幕上.

字串I/O函式 char *fgets(char *str,int n, FILE *fp); 從檔案讀取一行字串,傳回NULL代表有錯誤發生或檔案結束. int fputs(char *str, FILE *fp); 傳回-1(EOF)表示有錯誤發生.

格式化I/O函式 int fscanf(FILE *fp, char *format …); 傳回0表示有錯誤,否則傳回成功輸出的資料數. int fprintf(FILE *fp, char *format …); 例子: 以指定的格式輸出學生序號,姓名及英數成積到檔案.

隨機讀寫 int fseek(FILE *fp, long offset, int where); 傳為0代表成功,否則失敗 offset:偏移檔案指標offset個位置。 where=0, 代表檔案的起始位置 where=1, 代表目前檔案的指標位置 where=2, 代表檔案的結尾 例子:移到檔案末端, 使用fseek()更新檔案.

二元資料的開啟 fopen(filename,"rb"); /* 開檔時,指定讀取binary檔案 */ fopen(filename,"wb"); /* 開檔時,指定寫入資料到binary檔案 */ fopen(filename,"ab"); /* 開檔時,指定將資料加在binary檔案的後面 */ 例子

二元資料的讀取跟寫入(1) size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 回傳值:實際讀取的資料筆數,size_t資料型態定義於stdio,通常是unsigned int的別名。 ptr:存放資料的緩衝區指標。 size:要讀取的資料型態大小。 nmemb:要讀取的資料筆數。 stream:一個已開啟的檔案指標,代表要讀取的檔案串流。

二元資料的讀取跟寫入(2) size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream); 回傳值:實際寫入的資料筆數,size_t資料型態定義於stdio,通常是unsigned int的別名。 ptr:存放資料的緩衝區指標。 size:要寫入的資料型態大小。 nmemb:要寫入的資料筆數。 stream:一個已開啟的檔案指標,代表要寫入的檔案串流。 例子

練習時間 請將員工資料,寫入二進位檔,並讀出

今天學到了什麼 什麼是C語言的檔案處理 什麼是檔案類型 如何使用開檔與關檔 如何使用檔案I/O函式 如何隨機存取檔案 如何存取二進位檔