• /  29
  • 下載費用: 9.90積分  

C++程序設計基礎 安志遠ppt第7章 輸入輸出流.ppt

'C++程序設計基礎 安志遠ppt第7章 輸入輸出流.ppt'
第7章 輸入輸出流 1目標了解C++輸入/輸出的概念及機制掌握C++輸入/輸出流操作熟悉文件處理27.1 輸入/輸出流的概念 C++程序的輸入/輸出(I/O,Input/Output)操作,除了繼續使用C語言習慣用的庫函數實現外,還引入了“流(stream)”的概念。 “流”就是數據流,是字符序列在主機與外部介質之間的流動,它負責在數據的產生者和使用者之間建立聯系,并管理數據的流動。它具有方向性,與輸入設備相聯系的流,稱為輸入流;與輸出設備相聯系的流,稱為輸出流;與輸入輸出設備(如磁盤)相聯系的流,稱為輸入輸出流。37.2 標準流和流操作7.2.1 基本輸入/輸出操作7.2.2 輸入/輸出格式控制47.2.1 基本輸入/輸出操作1.標準流 標準流對象簡稱為標準流,是為用戶常用的外部設備提供與內在之間的通信通道,從而對數據進行解釋和傳輸,提供必要數據緩沖等。C++對標準流的端口連接定義了默認設置,如標準輸入流cin與鍵盤連接,也可以重定向。57.2.1 基本輸入/輸出操作2.基本輸入輸出操作【例7.1】基本輸出操作實例1。#include void main(){ int a=10,b=100; cout<<a; cout<<’+’<<b; cout<<’=’<<a+b<<endl; } 程序結果: 10+100=110由“cout<<a;”語句的箭頭方向,可以清楚地看到數據從變量a流到屏幕(cout)的。由“cout<<’+’<<b; cout<<’=’<<a+b<<endl;”兩條語句可見,使用“<<”將多個要輸出的數據串聯起來,完成多個數據的依次輸出。67.2.1 基本輸入/輸出操作2.基本輸出操作【例7.2】基本輸出操作實例2。#include "iostream.h"void main(){ int a=7; cout<<a<<a++<<++a<<a<>”實現數據輸入功能,用鍵盤輸入空格、Tab鍵和回車來表示一次輸入結束?!纠?.5】基本輸入操作實例1。#include void main(){ int a;float b;char c;char str[20];cout<>a>>b>>c>>str;97.2.1 基本輸入/輸出操作cout<<”輸出結果是:”<<endl;cout<<a<<endl;cout<<b<<endl;cout<<c<<endl; cout<<str<<endl;}程序結果:請輸入:20 34.56 a Good!輸出結果是:2034.56aGood! 107.2.1 基本輸入/輸出操作函數功能函數功能get從流中提取字符,包括空格 seekg 移動輸出流指針getline從流中提取一行字符 tellp返回輸出流中指定位置的指針值read 無格式輸入指定字節數operator插入運算府其它輸入函數:117.2.2 輸入/輸出格式控制 操作算子功能I/Oiostream.hdec 數值數據采用十進制表示 I/Oiostream.hhex 數值數據采用十六進制表示 I/Oiostream.hoct 數值數據采用八進制表示 I/Oiostream.hsetbase(int n) 設置數制轉換基數為n(0,8,10,16)0表示使用缺省基數 I/Oiostream.hendl 插入一個新行并清空流相關聯的緩沖區 Oiostream.h(1)格式輸出控制:127.2.2 輸入/輸出格式控制 操作算子功能I/Oiostream.hflush刷新與流相關聯的緩沖區 Oiostream.hresetiosflags(long) 清除參數所指定的標志位 I/Oiostream.hsetiosflages(long) 設置參數所指定的標志位 I/Oiostream.hsetfill(int)設置填充字符 Oiostream.hsetsprecision(int n) 設置浮點數輸出的有效數字個數(含小數點) Oiostream.h137.2.2 輸入/輸出格式控制 操作算子功能I/Oiostream.hsetw(int) 設置輸出數據項的域寬 Oiostream.hleft 左對齊,右填充字符 Oiostream.hright 右對齊,左填充字符 Oiostream.hscientific 科學記數法表示浮點值,精度域指小數點后面的數字位數Oiostream.hfixed 以定點格式表示浮點值,精度域指小數點后面的數字位數 Oiostream.h147.2.2 輸入/輸出格式控制【例7.8】使用格式化算子進行格式輸出的操作實例。#include "iostream.h"#include "iomanip.h"void main(){ int i=1024,j=256;double p=3.1415927,q=3.14;cout<<i<<endl;cout<<setw(12)<<i<<j<<endl; cout<<hex<<i<<endl; cout<<j<<endl; cout<<dec<<j<<endl; //以十進制形式輸出cout<<setw(10)<<setiosflags(ios::left)<<setfill('#')<<i<<endl;157.2.2 輸入/輸出格式控制//i的值占10個寬度居左輸出,不足10個寬度數據后補#cout<<setw(6)<<setfill('*')<<i<<endl; //居左輸出cout<<p<<endl; //輸出p值,6位有效數字cout<<setprecision(5)<<p<<endl; //輸出p的值,5位小數含小數點cout<<p<<endl; //輸出p的值,5位小數含小數點cout<<resetiosflags(ios::left)<<setw(10)<<setfill('$')<<j<<endl;//取消ios::left標志,輸出j占10個寬度居右,數據前補$}167.2.2 輸入/輸出格式控制程序結果:1024 10242564001002561024######1024**3.141593.14163.1416$$$$$$$256177.2.2 輸入/輸出格。省略部分。前的填充字符(默認值為空格) 當前填充字符 int ios::fill(int n) 設置填充字符 以前的填充字符 int ios::precision() 讀取當前的浮點數的有效數字個數(默認值為6) 當前浮點數的有效數字個數 int ios::precision(int n) 設置浮點數精度 以前的精度值 187.2.2 輸入/輸出格式控制【例7.9】ios流格式操作函數的輸出實例1。#include "iostream.h"void main(){ int i=1024;double j=13.1415927;cout<<i<<endl;cout.width(10); //設置輸出寬度為10cout<<i<<endl; //輸出i的值占10個寬度cout<<i<<endl; //輸出i的值cout.width(10); //設置輸出寬度為10cout.fill(‘$’); //設置填充字符為#cout.setf(ios::left,ios::adjustfield);//設置居左cout<<i<<endl; //按當前設置輸出i197.2.2 輸入/輸出格式控制cout.width(12); //設置輸出寬度12cout.setf(ios::right,ios::adjustfield);//設置居右cout.precision(5); //設置精度為5cout<<j<<endl; //按精度設置輸出j的值cout<<”width:”<<cout.width()<<endl; //輸出當前的寬度值}程序結果:1024 102410241024$$$$$$$$$$$$13.142width:0207.3 文件處理7.3.1 文件的打開與關閉7.3.2 文本文件的訪問7.3.3 二進制文件的訪問7.3.4 文件的隨機訪問217.3.1 文件的打開與關閉(1)打開文件:方式一:首先建立流對象,然后調用函數open連接外部文件。流類 對象名;對象名.open(文件名,方式);方式二:調用流類帶參數的構造函數,建立流對象的同時連接外部文件。流類 對象名(文件名,方式);227.3.1 文件的打開與關閉(2)文件關閉:#include "iostream.h"#include "fstream.h"void main(){ ofstream outfile("d:\\f1.txt",ios::out);if(!outfile)cerr<<"打開文件錯誤!"<<endl;else{outfile<<120<<endl; outfile<<310.65<<endl; outfile.close();} }237.3.2 文本文件的訪問【例7.13】將一些信息寫入d:\aa.txt文本文件中。#include "iostream.h"#include "fstream.h"void main(){ ofstream outfile("d:\\aa.txt",ios::out);if(!outfile)cerr<<"打開文件錯誤!"<<endl;else{ outfile<<"姓名\t"<<"英語\t"<<"計算機\t"<<endl; outfile<<"李莉\t"<<89.0<<"\t"<<98.5<<"\t"<<endl; outfile<<"王曉春\t"<<85.0<<"\t"<<87.5<<endl; outfile<<"張晉\t"<<76.0<<"\t"<<67.5<<endl;} }247.3.2 文本文件的訪問程序執行結果,在D盤上建立了一個aa.txt文本文件,內容是:姓名 英語 計算機李莉 89 98.5王曉春 85 87.5張晉 76 67.5上面程序完成向文本文件中寫數據功能,還可以使用getline()從文件中讀逐行讀取數據,使用get()方法從文件逐個讀取字符,使用put()方法向文件中逐個輸出字符,并可以綜合使用這些方法和循環語句來完成文件的復制。257.3.3 二進制文件的訪問 進行二進制文件訪問時,打開文件必須加上ios::binary方式。進行讀寫操作時要按照數據存儲格式逐個字節一一讀取或寫入。從二進制文件中讀信息時,使用read()成員函數。向二進制文件中寫入信息時,使用write()成員函數。通過下面實例說明二進制文件的讀寫操作?!纠?.16】對一個二進制文件d:\cc.dat進行讀寫操作。#include "iostream.h"#include "fstream.h"#include "stdlib.h" void main(){ int date1[]={2005,03,26},date2[3];double x=12.45,y;267.3.3 二進制文件的訪問fstream outfile("d:\\cc.txt",ios::out|ios::binary);//以寫方式打開二進制文件if(!outfile){ cerr<<"打開文件錯誤!"<<endl; abort();}outfile.write((char *)date1,sizeof(date1));//將數組date1寫入文件outfile.write((char *) &x,sizeof(x));//將x寫入文件outfile.close();fstream infile("d:\\cc.txt",ios::in|ios::binary);//以讀方式打開二進制文件277.3.3 二進制文件的訪問infile.read((char *)date2,sizeof(date2));//逐個字節讀取文件,先讀入數組date2infile.read((char *)&y,sizeof(y));//讀取文件,再讀入y cout<<date2[0]<<'\t'<<date2[1]<<'\t'<<date2[2]<<'\t'<<y<<endl;infile.close(); //關閉讀方式打的aa.txt文件}說明:在程序中通過write()函數和read()函數分別完成把數據寫到cc.txt文件和從cc.txt文件讀出來。在處理過程中,由于write函數只能寫字符串,所以首先將其他類型的數據用“(char *) 數據地址”方法轉換成字符串類型,而數據的長度由sizeof()函數測定,read()函數也通過同相的方式讀取二進制文件。287.3.4 文件的隨機訪問1.文件指針相對移動函數 seekg()和seekp() 2.文件指針定位函數 tellg()和tellp() 3.文件指針絕對移動函數 seekg()和seekp() 29
關 鍵 詞:
c++ 輸入 ppt 輸出 程序設計 基礎
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:C++程序設計基礎 安志遠ppt第7章 輸入輸出流.ppt
鏈接地址: http://www.476824.live/p-51617174.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 今期跑狗玄机四不像图 在线配资平台问卓信宝配资 中国福利彩票重庆欢乐生肖 pc蛋蛋赔率跟踪软件 贵州快三注册 广东36选7开奖结果 股票能连续涨停几次 爱配资网的微博 下载江苏11选5快3开奖号 内蒙古快3今天中奖号码