www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]一、 C++ 輸入輸出的含義在C語言中我們的輸入和輸出都是以printf和scanf進行操作的。他們都是函數(shù)。在C++中的我們的輸入輸出都是以終端為對象的,即從鍵盤輸入數(shù)據(jù),運行結果輸出到顯示器屏幕上

一、 C++ 輸入輸出的含義

在C語言中我們的輸入和輸出都是以printf和scanf進行操作的。他們都是函數(shù)。在C++中的我們的輸入輸出都是以終端為對象的,即從鍵盤輸入數(shù)據(jù),運行結果輸出到顯示器屏幕上。從操作系統(tǒng)(Linux)的角度看,每一個與主機相連的輸入輸出設備都被看作一個文件。程序的輸入指的是從輸入文件將數(shù)據(jù)傳送給程序,程序的輸出指的是從程序將數(shù)據(jù)傳送給輸出文件。C++的輸入與輸出包括以下3方面的內容:

1、對系統(tǒng)指定的標準設備的輸入和輸出。簡稱標準I/O。(設備)

2、以外存磁盤(或光盤)文件為對象進行輸入和輸出。簡稱文件I/0。(文件)

3、對內存中指定的空間進行輸入和輸出。簡稱串I/O。(內存)

C++采取不同的方法來實現(xiàn)以上3種輸人輸出。 為了實現(xiàn)數(shù)據(jù)的有效流動,C++系統(tǒng)提供了龐大的I/O類庫,調用不同的類去實現(xiàn)不同的功能。

二、 C++的I/O對C的發(fā)展—類型安全和可擴展性

C語言中I/O存在問題:

1、在C語言中,用printf和scanf進行輸入輸出,往往不能保證所輸入輸出的數(shù)據(jù)是可靠的、安全的。學過C語言的讀者可以分析下面的用法:想用格式符%d輸出一個整數(shù),但不小心錯用了它輸出單精度變量和字符串,會出現(xiàn)什么情況?假定所用的系統(tǒng)int型占兩個字節(jié)。

printf("%d",i); //i為整型變量,正確,輸出i的值

printf("%d",f); //f為單精度變量,輸出變量中前兩個字節(jié)的內容

printf("%d","C++");//輸出字符串"C++”的起始地址

編譯系統(tǒng)認為以上語句都是合法的,而不對數(shù)據(jù)類型的合法性進行檢查,顯然所得到的結果不是人們所期望的。

2、在用scanf輸入時,有時出現(xiàn)的問題是很隱蔽的。如

scanf("%d",&i); //正確,輸入一個整數(shù),賦給整型變量i

scanf("%d",i); //漏寫&

假如已有聲明語句"int i=1",定義i為整型變量,其初值為1。編譯系統(tǒng)不認為上面的scanf語句出錯,而是將輸入的值存放到地址為000001的內存單元中,這個錯誤可能產(chǎn)生嚴重的后果。

注意:C++為了與C兼容,保留了用printf和scanf進行輸出和輸入的方法,以便使過去所編寫的大量的C程序仍然可以在C++的環(huán)境下運行,但是希望讀者在編寫新的C++程序時不要用C的輸入輸出機制,而要用C++自己特有的輸入輸出方法。在C++的輸入輸出中,編譯系統(tǒng)對數(shù)據(jù)類型進行嚴格的檢查,凡是類型不正確的數(shù)據(jù)都不可能通過編譯。因此C++的I/0操作是類型安全(typesafe)的。

3、用printf和scanf可以輸出和輸入標準類型(如:int,float,double,char)的數(shù)據(jù),但無法輸出用戶自己聲明的類型(如數(shù)組、結構體、類)的數(shù)據(jù)。在C++中,會經(jīng)常遇到對類對象的輸入輸出,顯然無法使用printf和scanf來處理。C++的I/O操作是可擴展的,不僅可以用來輸入輸出標準類型的數(shù)據(jù),也可以用于用戶自定義類型的數(shù)據(jù)。C++對標準類型的數(shù)據(jù)和對用戶聲明類型數(shù)據(jù)的輸入輸出,采用同樣的方法處理。顯然,在用戶聲明了一個新類后,是無法用printf和scanf函數(shù)直接輸出和輸入這個類的對象的。

解決辦法:

可擴展性是C++輸入輸出的重要特點之一,它能提高軟件的重用性,加快軟件的開發(fā)過程。

C++通過I/O類庫來實現(xiàn)豐富的I/0功能。這樣使C++的輸入輸出明顯地優(yōu)于C語言中的pfintf和scanf,但是也為之付出了代價,C++的I/O系統(tǒng)變得比較復雜,要掌握許多細節(jié)。在本章中只能介紹其基本的概念和基本的操作,有些具體的細節(jié)可在日后實際深入應用時再進一步掌握。

三、 C++的輸入輸出流

輸入和輸出是數(shù)據(jù)傳送的過程,數(shù)據(jù)如流水一樣從一處流向另一處(單方向、一維)。C++形象地將此過程稱為流(stream)。C++的輸入輸出流是指由若干字節(jié)組成的字節(jié)序列,這些字節(jié)中的數(shù)據(jù)按順序從一個對象傳送到另一對象。流表示了信息從源到目的端的流動。在輸入操作時,字節(jié)流從輸入設備(如鍵盤、磁盤)流向內存,在輸出操作時,字節(jié)流從內存流向輸出設備(如屏幕、打印機、磁盤等)。流中的內容可以是ASCII字符、二進制形式的數(shù)據(jù)、圖形圖像、數(shù)字音頻視頻或其他形式的信息。

實際上,在內存中為每一個數(shù)據(jù)流開辟一個內存緩沖區(qū),用來存放流中的數(shù)據(jù)。當用cout和插入運算符“<

在C++中,輸入輸出流被定義為類。C++的I/0庫中的類稱為流類(streamclass)。用流類定義的對象稱為流對象。

前面曾多次說明,cout和cin并不是C++語言中提供的語句,它們是iostream類的對象,在未學習類和對象時,在不致引起誤解的前提下,為敘述方便,把它們稱為cout語句和cin語句。正如C++并未提供賦值語句,只提供賦值表達式,在賦值表達式后面加分號就成了C++的語句,為方便起見,我們習慣稱之為賦值語句。又如,在C語言中常用printf和scanf進行輸出和輸入,printf和scanf是C語言庫函數(shù)中的輸入輸出函數(shù),一般也習慣地將由printf和scanf函數(shù)構成的語句稱為printf語句和scanf語句。在使用它們時,對其本來的概念要有準確的理解。

1.iostream類庫中有關的類

C++編譯系統(tǒng)提供了用于輸人輸出的iostream類庫。iostream這個單詞是由3個部分組成的,即i-o-stream,意為輸入輸出流。在iostream類庫中包含許多用于輸入輸出的類。

ios是抽象基類,由它派生出istream類和ostream類,兩個類名中第1個字母i和。分 別代表輸入(mput)和輸出(output)。istream類支持輸入操作,ostream類支持輸出操作, iostream類支持輸入輸出操作。iostream類是從istream類和ostream類通過多重繼承而派生的類。

C++對文件的輸人輸出需要用ifstream和ofstream類,兩個類名中第1個字母i和o分別代表輸入和輸出,第2個字母f代表文件(file)。ifstream支持對文件的輸入操作,ofstream支持對文件的輸出操作。類ifstream繼承了類istream,類ofstream繼承了類ostream,類fstream繼承了類iostream。



由圖可以看到:由抽象基類ios直接派生出4個派生類,即istream,ostream,fstreambase和strstreambase。其中fstreambase是文件流類基類,由它再派生出ifstream,ofstream和fstream。strstreambase是字符串流類基類,由它再派生出lstrstream,ostrsCeam和swsWeam類。

I/0類庫中還有其他一些類,但是對于一般用戶來說,以上這些已能滿足需要了。如果想深入了解類庫的內容和使用,可參閱所用的C++系統(tǒng)的類庫手冊。在本章將陸續(xù)介紹有關的類。

2、與iostream類庫有關的頭文件

iostream類庫中不同的類的聲明被放在不同的頭文件中,用戶在自己的程序中用 #include命令包含了有關的頭文件就相當于在本程序中聲明了所需要用到的類。可以換一種說法:頭文件是程序與類庫的接口,iostream類庫的接口分別由不同的頭文件來實現(xiàn)。常用的有

●iostream 包含了對(標準)輸入輸出流進行操作所需的基本信息。

●fstream 用于用戶管理的文件的I/0操作。

●strstream 用于字符串流I/0。

●stdiostream 用于混合使用C和C++的I/0機制時,例如想將C程序轉變?yōu)镃++程序。

●iomamp 在使用格式化I/0時應包含此頭文件。

3、在iostream頭文件中定義的流對象

在iostream頭文件中定義的類有:ios,istream,ostream,iostream,istream_withassign,ostream_withassign,iostream_withassign等。

iostream包含了對輸入輸出流進行操作所需的基本信息。因此大多數(shù)C++程序都包括iostream。在iostream頭文件中不僅定義了有關的類,還定義了4種流對象,

cin是istream的派生類istream_withassign的對象,它是從標準輸入設備(鍵盤)輸入到內存的數(shù)據(jù)流,稱為cin流或標準輸入流。cout是ostream的派生類ostream_withassign的對象,它是從內存輸入到標準輸出設備(顯示器)的數(shù)據(jù)流,稱為cout流或標準輸出流。cerr和clog作用相似,均為向輸出設備(顯示器)輸出出錯信息。因此用鍵盤輸入時用cin流,向顯示器輸出時用cout流。向顯示器輸出出錯信息時用cerr和clog流。

在iostream頭文件中定義以上4個流對象用以下的形式(以cout為例):

ostream cout(stdout);

在定義cout為ostream流類對象時,把標準輸出設備stdout作為參數(shù),這樣它就與標準輸出設備(顯示器)聯(lián)系起來,如果有

cout<<3;//就會在顯示器的屏幕上輸出3。

4.在iostream頭文件中重載運算符

“<

#include

在istream和ostream類(這兩個類都是在頭文件iostream中聲明的)中分別有一組成員函數(shù)對位移運算符“<

ostream operator<<(int); //用于向輸出流插入一個int數(shù)據(jù)

ostream operator<<(float);//用于向輸出流插入一個float數(shù)據(jù)

ostream operator<<(char); //用于向輸出流插入一個char數(shù)據(jù)

ostream operator<<(char *) //用于向輸出流插入一個字符串數(shù)據(jù)

等。如果在程序中有下面的表達式: cout<<"C++";

根據(jù)所介紹的知識,上面的表達式相當于 cout.operator<<("C++")

”C++”的值是其首字節(jié)地址,是字符型指針(char *)類型,因此選擇調用上面最后一個運算符重載函數(shù),通過重載函數(shù)的函數(shù)體,將字符串插入到cout流中,函數(shù)返回流對象cout。

在istream類中已將運算符“>>”重載為對以下標準類型的提取運算符:char,signed char,unsigned char,short,unsigned short,int,unsigned int,long,unsigned long,float, double,longdouble,char*,signedchar*,unsignedchar*等。

在ostream類中將“<<”重載為插入運算符,其適用類型除了以上的標準類型外,還增加了一個void。類型。

如果想將“<

怎樣理解運算符“<

而: <<a p="" 箭頭方向表示從a中拿出數(shù)據(jù)。

<a p="" 箭頭方向表示從a中拿出數(shù)據(jù)。

<a p="" 箭頭方向表示從a中拿出數(shù)據(jù)。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉