C++的檔案處理 2009.03 綠園.

Slides:



Advertisements
Similar presentations
計算機程式語言實習課.
Advertisements

2011计算机类教研活动 陈国久.
第 2 章 初探 C++.
補充: Input from a text file
第11章 输入输出流类.
流类库与输入/输出 输入/输出标准流类 文件流类 串流类 输入/输出成员函数 用户自定义类型的输入/输出.
File Access 井民全製作.
微博: weibo.com/zhnitj QQ:
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
第8章 C++输入输出类层次 ffh.
刘胥影 东南大学计算机学院 面向对象程序设计1 2011~2012第3学期 刘胥影 东南大学计算机学院.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
新世纪计算机专业系列教材 数据结构 C++实现 第一章 缪淮扣 顾训穰 沈 俊 编著 科 学 出 版 社.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
第9章 C++的文件操作 “文件”,一般是指内存以外的存储介质上一批数据的集合。C++在语言层次上提供了文件操作的一系列函数用于完成文件的操作,打开、关闭文件,读取、写入文件数据等操作。 1。字符文件与二进制文件 字符文件:又称ASCII文件或文本TEXT文件,它是以一个字节存放一个ASCII码,代表一个字符。例如,32767需要使用5个字节表示,即:
计算机网络讲义 第5章 批量数据处理—数组 一维数组 排序和查找 二维数组 字符串.
檔案 將資料存入磁碟或由磁碟取出資料的方式, 稱為檔案存取處理。 C語言的檔案處理 C++語言的檔案處理.
第八章 文件 引述 输入输出流和文件概述 文件操作 流的格式化输出 程序举例 本章小节.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
C++程序设计 string(字符串类) vector(容器类).
第13章 输入输出流 王雪晶.
第九章 C++的I/O流库 9.1 流 9.2 磁盘文件 9.3 程序举例.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
第5章 文件.
第八章 文件 引述 输入输出流和文件概述 文件操作 流的格式化输出 程序举例 本章小节.
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
C++语言程序设计 第十一章 流类库与输入/输出.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
研讨课4 文件操作.
10 多載函數 10.1 多載概論 多載一般函數 多載成員函數 10-3
第 14 章 輸出與輸入.
第十三讲 文件流与 输出输入重载.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
C++大学基础教程 第3章 C++控制语句 北京科技大学 信息基础科学系.
第14章 输入输出与文件 输入输出是指程序与外部设备交换信息 C++把输入输出看成是一个数据流 输入流:外围设备流向内存的数据
领导艺术与方法 适合对象:课长级以上人员 人力资源部 李晓红 2006/6/12
第7章 输入/输出流 文件和I/O流概述 标准I/O流的对象及其成员函数 文件流.
手机移动设备嵌入式C++ 第七章 C++的I/O流库.
程式結構&語法.
第三章 C++的语句和简单的程序设计 主要内容:
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
第3章C++面向对象程序设计 3.1 类和对象 作业1 3.2 继承和派生类 作业2 3.3 多态和虚函数 3.4 运算符重载 作业3
物件導向程式設計 CH2.
C++的檔案處理 綠園.
輸出與輸入(I/O).
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
字符串 (String) 字符串是 n (  0 ) 个字符的有限序列, 记作 S = “c1c2c3…cn” 其中,S 是串名字
C++程式設計入門 變數與運算子 作者:黃建庭.
第十一章 IO流与文件系统 丘志杰 电子科技大学 计算机学院 软件学院.
第二章 类型、对象、运算符和表达式.
挑戰C++程式語言 ──第7章 輸入與輸出.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
第1章 C++面向对象程序设计要点 1.1 函数和函数参数 1.2 输入输出   1.3 类 1.4 抽象类型和模板.
隨機數 (亂數) 10後,取餘數 n = rand(); 利用 Code::Block 驗證一下 n = rand() %10; 998
挑戰C++程式語言 ──第9章 函數.
C++语言程序设计 第十章 C++标准模板库 成都信息工程学院计算机系.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
結構、檔案處理(Structure, File)
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
第2章 文件操作 陈哲 副教授 南京航空航天大学 计算机科学与技术学院.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
變數與資料型態  綠園.
資料!你家住哪裏? --談指標 綠園.
第十四讲 文件流与 输出输入重载.
题目详细要求、参考资料及更新发布于: 第二周 链表与指针 题目详细要求、参考资料及更新发布于:
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

C++的檔案處理 2009.03 綠園

檔案的基本概念一 將一組資料儲放在記憶體上,並且給與這塊記憶體一個名稱,就是檔案。 檔案類型(依目的不同):程式檔、執行檔、資料檔。 檔案型式: 文字檔(text file):由文字所組成,給人們看的。 二進位檔(binary file):是機器碼,給電腦看的。

檔案的基本概念二 C++是以「串流」(stream)的方式來處理輸入與輸出。為了方便串流的處理,C++提供了 ios 類別。 (input / output stream 的縮寫) input stream output stream Stream 由程式讀取 螢幕 / 檔案 讀取 寫入 鍵盤輸入 / 檔案 程式執行結果

ios 類別 ios ostream istream iostream fstream ofstream ifstream 可用來建立檔案物件,進行檔案處理。 需載入 #include <fstream> 標頭檔

建立檔案物件 在開啟檔案之前,必須先建立一個檔案物件(file object)。檔案物件可分為三種: 可供寫入資料的檔案物件 格式:ifstream 檔案物件名稱; 例如:ifstresm infile; 可供讀取資料的檔案物件 格式:ofstream 檔案物件名稱; 例如:ofstresm outfile; 可供寫入與讀取資料的檔案物件 格式:fstream 檔案物件名稱; 例如:fstresm myfile;

檔案的開啟與關閉 開啟檔案 檔案物件.open(“檔案名稱”,ios::開啟模式); 可供選擇的開啟模式 ios::app 開啟可供附加資料的檔案 ios::in 開啟可供讀取資料的檔案 ios::out 開啟可供寫入資料的檔案 ios::trunc 若檔案已存在,先刪除它,再開啟 ios::binary 開啟二進位的輸入/輸出檔案 關閉檔案 檔案物件.close();

檔案的開啟範例 檢查檔案是否開啟成功 檔案的關閉範例 ifstream inf; inf.open(“d:\\test.txt”, ios::in); 檢查檔案是否開啟成功 ifstream inf(“d:\\test.txt”, ios::in); if( inf.is_open() ) {…… } else 檔案的關閉範例 inf.close();

文字檔的處理 get()、getline()、put() 將資料寫入文字檔 將資料附加到已存在的文字檔 從文字檔案讀取資料 文字檔的拷貝與讀取

//將資料寫入文字檔 int main() { ofstream ofile(“d:\\donkey.txt”, ios::out); if(ofile.is_open()) { ofile << “我有一隻小毛驢” << endl; ofile << “我從來也不騎” << endl; cout << “已將字串寫入檔案了…” << endl; } else cout << “檔案開啟失敗…” << endl; ofile.close(); //關閉檔案 return 0;

//將資料附加到已存在的文字檔 int main() { ofstream afile(“d:\\donkey.txt”, ios::app); if(afile.is_open()) { afile << “有一天我心血來潮騎著去趕集”; cout << “已將字串附加到檔案了…” << endl; } else cout << “檔案開啟失敗…” << endl; afile.close(); //關閉檔案 return 0;

//從檔案讀取資料 int main() { char txt[80]; ifstream ifile(“d:\\donkey.txt”, ios::in); if( ifile.is_open() ) while( !ifile.eof() ) //判別是否讀到檔案的尾端 { ifile >> txt; //將檔案內容寫入字元陣列 cout << txt << endl; } else cout << “檔案開啟失敗…” << endl; ifile.close(); //關閉檔案 return 0;

使用get()、getline()、put()函數 //從檔案內讀取一個字元,並把它寫入 ch 字元變數 檔案物件.get(ch); //從檔案內最多讀取 N-1 個字元,或是讀取到 \n //並把它存放到字串 str 中 檔案物件.getline(str, N, ’\n’); //將ch字元變數的值寫入檔案內 檔案物件.put(ch);

//利用 put() 將字串寫入檔案 int main() { char txt[]=“Welcome to the C++ world”; int i=0; ofstream ofile(“d:\\welcome.txt”, ios::out); if( ofile.is_open() ) { while( txt[i] != ‘\0’ ) ofile.put(txt[i++]); cout << “字串寫入完成…” << endl; } else cout << “檔案開啟失敗…” << endl; ofile.close(); //關閉檔案 return 0;

//文字檔的拷貝與讀取 int main() { char txt[80], ch; ifstream ifile1(“d:\\welcome.txt”, ios::in); ofstream ofile(“d:\\welcome2.txt”, ios::out); while( ifile1.get(ch) ) ofile.put(ch); cout << “拷貝完成…” << endl; ifile1.close(); ofile.close(); ifstream ifile2(“d:\\welcome2.txt”, ios::in); while( !ifile2.eof() ) { ifile2.getline(txt, 80, ’\n’); cout << txt << endl; } ifile2.close(); return 0;

【隨堂練習與回家功課】: 1.開一檔案lotto.txt,產生100組樂透號碼(01-42)。數字為1-9者,需於前面加上0。如01~09。 2.有一資料檔案in.txt ,為一元二次方程式的係數組。內容如下: 3 1 2 1 2 3 1 3 5 2 第一行代表題數n,以下n行代表有n題的一元二次方程式係數。 請試著求解。答案顯示在螢幕上即可。 3.開一檔案magicsquare.txt,將Magic Square的輸出結果輸出至此檔中。