第03章 簡單的輸入輸出_第1頁
第03章 簡單的輸入輸出_第2頁
第03章 簡單的輸入輸出_第3頁
第03章 簡單的輸入輸出_第4頁
第03章 簡單的輸入輸出_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1目目 錄錄F第第1章章 C+概述概述F第第2章章 數(shù)據(jù)類型、運算符和表達式數(shù)據(jù)類型、運算符和表達式F第第3章章 簡單的輸入簡單的輸入/輸出輸出F第第4章章 C+的流程控制的流程控制F第第5章章 函數(shù)函數(shù)F第第6章章 編譯預(yù)處理編譯預(yù)處理F第第7章章 數(shù)組數(shù)組F第第8章章 結(jié)構(gòu)體、共同體和枚舉類型結(jié)構(gòu)體、共同體和枚舉類型F第第9章章 指針和引用指針和引用F第第10章章 類和對象類和對象F第第11章章 類和對象的其他特性類和對象的其他特性F第第12章章 繼承和派生繼承和派生F第第13章章 多態(tài)性多態(tài)性F第第14章章 輸入輸入/輸出流輸出流F第第15章章 模板模板v第一部分第一部分 面向過程的程序

2、設(shè)計面向過程的程序設(shè)計v第二部分第二部分 面向?qū)ο蟮某绦蛟O(shè)計面向?qū)ο蟮某绦蛟O(shè)計2第第3章章 簡單的輸入簡單的輸入/輸出輸出33.1 傳統(tǒng)的輸入/輸出函數(shù)實現(xiàn)方法輸入輸入:從鍵盤輸入數(shù)據(jù)賦給變量:從鍵盤輸入數(shù)據(jù)賦給變量輸出輸出:指計算機把計算結(jié)果送到顯示器上顯示:指計算機把計算結(jié)果送到顯示器上顯示應(yīng)用程序可以包含應(yīng)用程序可以包含零個或多個零個或多個輸入輸入應(yīng)用程序至少包含應(yīng)用程序至少包含一個或多個一個或多個輸出輸出傳統(tǒng)程序使用傳統(tǒng)程序使用I/OI/O函數(shù)實現(xiàn)輸入函數(shù)實現(xiàn)輸入/ /輸出操作輸出操作C+C+程序使用操作符重載方法實現(xiàn)輸入程序使用操作符重載方法實現(xiàn)輸入/ /輸出流技術(shù)輸出流技術(shù)C+C+

3、中輸入中輸入/ /輸出實現(xiàn)更加簡單方便輸出實現(xiàn)更加簡單方便43.2 cin 輸入流鍵盤輸入稱為鍵盤輸入稱為標(biāo)準(zhǔn)輸入標(biāo)準(zhǔn)輸入(standard inputstandard input)顯示器輸出稱為顯示器輸出稱為標(biāo)準(zhǔn)輸出標(biāo)準(zhǔn)輸出(standard outputstandard output)C+C+中通過輸入中通過輸入/ /輸出流來實現(xiàn)標(biāo)準(zhǔn)輸出輸出流來實現(xiàn)標(biāo)準(zhǔn)輸出/ /輸出操作。輸出操作。輸入操作通過流輸入操作通過流cincin來實現(xiàn)來實現(xiàn)輸出操作通過流輸出操作通過流coutcout來實現(xiàn)來實現(xiàn)使用輸入流使用輸入流 cincin ,必須在程序的第一行包含頭文件。,必須在程序的第一行包含頭文件。即

4、:#include 53.2 cin 輸入流cincin一般格式:一般格式:cin . “” “”稱為提取運算符,表示程序暫停執(zhí)行,等稱為提取運算符,表示程序暫停執(zhí)行,等待從輸入流中提取數(shù)據(jù)賦給變量待從輸入流中提取數(shù)據(jù)賦給變量 將將cincin想象成鍵盤,想象成鍵盤,“”想象成數(shù)據(jù)流向箭頭,想象成數(shù)據(jù)流向箭頭,可以很容易記憶輸入操作可以很容易記憶輸入操作例:例:intint i , j ; i , j ; float x , y ; float x , y ; cin cin i j ; i j ; cin cin x y ; x y ; 輸入的數(shù)據(jù)之間用輸入的數(shù)據(jù)之間用分隔符分隔符分隔:分隔

5、: 、 、Tab 運行時:運行時:輸入:輸入:1 2 3.2 4.5 則則 變量變量 i、j 的值為的值為 1、2 變量變量 x、y 的值的值 3.2 和和 4.563.2 cin 輸入流每行末尾輸入回車鍵的作用是:每行末尾輸入回車鍵的作用是:1 1告訴告訴cincin一行數(shù)據(jù)已經(jīng)輸入完畢,一行數(shù)據(jù)已經(jīng)輸入完畢,cincin開始提取用戶開始提取用戶輸入的數(shù)據(jù)(忽略分隔符),并依次將所提取的數(shù)輸入的數(shù)據(jù)(忽略分隔符),并依次將所提取的數(shù)據(jù)賦值給據(jù)賦值給cincin中所列舉的變量中尚未獲得數(shù)據(jù)的變量。中所列舉的變量中尚未獲得數(shù)據(jù)的變量。2 2在屏幕上顯示光標(biāo)換行,為下一行的輸入或者顯示在屏幕上顯示

6、光標(biāo)換行,為下一行的輸入或者顯示程序的輸出結(jié)果做好準(zhǔn)備,起到輸入數(shù)據(jù)之間以及程序的輸出結(jié)果做好準(zhǔn)備,起到輸入數(shù)據(jù)之間以及輸入數(shù)據(jù)與輸出結(jié)果之間的分隔符的作用。輸入數(shù)據(jù)與輸出結(jié)果之間的分隔符的作用。 用戶輸入數(shù)據(jù)的個數(shù)小于變量的個數(shù)用戶輸入數(shù)據(jù)的個數(shù)小于變量的個數(shù)。則在提取。則在提取完輸入行的有效數(shù)據(jù)后仍有變量沒有獲得數(shù)值,當(dāng)完輸入行的有效數(shù)據(jù)后仍有變量沒有獲得數(shù)值,當(dāng)前的輸入語句不會結(jié)束,會繼續(xù)等待用戶輸入新的前的輸入語句不會結(jié)束,會繼續(xù)等待用戶輸入新的一行數(shù)據(jù)。一行數(shù)據(jù)。73.2 cin 輸入流 用戶輸入的數(shù)據(jù)個數(shù)大于變量的個數(shù)用戶輸入的數(shù)據(jù)個數(shù)大于變量的個數(shù)。則輸入語。則輸入語句只依次提取

7、輸入行中的部分數(shù)值給變量。而多余句只依次提取輸入行中的部分數(shù)值給變量。而多余的數(shù)值會被下一條的數(shù)值會被下一條cincin輸入語句中的變量所提取,或輸入語句中的變量所提取,或者在沒有后續(xù)的輸入語句的情況下被程序舍棄。者在沒有后續(xù)的輸入語句的情況下被程序舍棄。 intint i , j ; i , j ; cin cin i j ; i j ; 若輸入:若輸入:100 200 300100 200 300,300300將被程序舍將被程序舍棄。棄。 如果用戶輸入的一行僅僅是一個回車鍵,則如果用戶輸入的一行僅僅是一個回車鍵,則cincin把把該鍵作為分隔符來處理(將其忽略),該鍵作為分隔符來處理(將其

8、忽略),只是在屏幕只是在屏幕上顯示光標(biāo)換行,程序會繼續(xù)等待用戶輸入數(shù)據(jù)上顯示光標(biāo)換行,程序會繼續(xù)等待用戶輸入數(shù)據(jù)。 83.2 cin 輸入流 輸入數(shù)據(jù)的類型由輸入數(shù)據(jù)的類型由cincin根據(jù)變量的類型來自動判定。根據(jù)變量的類型來自動判定。從鍵盤上輸入數(shù)據(jù)的個數(shù)、類型及順序,必須與從鍵盤上輸入數(shù)據(jù)的個數(shù)、類型及順序,必須與cincin中列舉的變量一一對應(yīng)。中列舉的變量一一對應(yīng)。 例如:例如: int a, b; cin a b; 執(zhí)行cin時,若輸入字符數(shù)據(jù): D F 由于用戶輸入的數(shù)據(jù)是字符類型,而對應(yīng)的接收由于用戶輸入的數(shù)據(jù)是字符類型,而對應(yīng)的接收變量是整數(shù)類型,兩者類型不匹配,變量變量是整

9、數(shù)類型,兩者類型不匹配,變量a a得不到有得不到有效值,其值為效值,其值為0 0。后續(xù)的變量。后續(xù)的變量b b受影響無法繼續(xù)獲得受影響無法繼續(xù)獲得數(shù)值,其值為一個隨機數(shù)。數(shù)值,其值為一個隨機數(shù)。錯誤會繼續(xù)向后延伸,錯誤會繼續(xù)向后延伸,造成后續(xù)的造成后續(xù)的cincin語句也不能正確提取數(shù)據(jù)。語句也不能正確提取數(shù)據(jù)。 93.2 cin 輸入流 例如:例如:int a;float b;cin b a; 執(zhí)行執(zhí)行cincin時,若輸入:時,若輸入:300 1.234 .300 1.234 . 實型實型b b變量獲得變量獲得300.0300.0的數(shù)值。而整型變量的數(shù)值。而整型變量a a同樣進同樣進行數(shù)據(jù)

10、類型轉(zhuǎn)換,將小數(shù)行數(shù)據(jù)類型轉(zhuǎn)換,將小數(shù)1.2341.234轉(zhuǎn)換為整數(shù)轉(zhuǎn)換為整數(shù)1 1,小數(shù),小數(shù)部分被丟棄。部分被丟棄。 103.2.1 輸入十六進制或者八進制數(shù)據(jù)輸入十六進制或者八進制數(shù)據(jù) 必須在必須在cincin中指明相應(yīng)的數(shù)據(jù)類型:中指明相應(yīng)的數(shù)據(jù)類型:hexhex表示十六表示十六進制,進制,octoct表示八進制,表示八進制,decdec表示十進制。表示十進制。 例例3.33.3:#include iostream.h#include void main( ) int a,b,c,d; / 變量名a,b,c,d cin hex a; /指明輸入為十六進制數(shù) cin oct b; /指明

11、輸入為八進制數(shù) cin c; /輸入仍舊是八進制數(shù) cin dec d; /指明輸入為十進制數(shù) cout a , b , c , d endl;113.2.1 輸入十六進制或者八進制數(shù)據(jù)輸入十六進制或者八進制數(shù)據(jù) 必須在必須在cincin中指明相應(yīng)的數(shù)據(jù)類型:中指明相應(yīng)的數(shù)據(jù)類型:hexhex表示十六表示十六進制,進制,octoct表示八進制,表示八進制,decdec表示十進制。表示十進制。 例例3.33.3:#include iostream.h#include void main( ) int a,b,c,d; / 變量名a,b,c,d cin hex a; /指明輸入為十六進制數(shù) cin

12、 oct b; /指明輸入為八進制數(shù) cin c; /輸入仍舊是八進制數(shù) cin dec d; /指明輸入為十進制數(shù) cout a , b , c , d endl;輸入:輸入:20 21 22 23 a=32, b=17, c=18, d=23123.2.1 輸入十六進制或者八進制數(shù)據(jù)輸入十六進制或者八進制數(shù)據(jù) 使用非十進制輸入數(shù)據(jù)時,要注意幾點:使用非十進制輸入數(shù)據(jù)時,要注意幾點:1 1八進制或十六進制數(shù)的輸入,只適用于整型變量,八進制或十六進制數(shù)的輸入,只適用于整型變量,不適用于字符型變量、實型變量。不適用于字符型變量、實型變量。2 2當(dāng)在當(dāng)在cincin中指明使用的輸入數(shù)制后,則所指明

13、的數(shù)中指明使用的輸入數(shù)制后,則所指明的數(shù)制一直有效,直到在下一個制一直有效,直到在下一個cincin語句中指明采用不同語句中指明采用不同的輸入數(shù)制時為止。的輸入數(shù)制時為止。3 3用戶從鍵盤輸入數(shù)據(jù)的格式、個數(shù)和類型必須與用戶從鍵盤輸入數(shù)據(jù)的格式、個數(shù)和類型必須與cincin中所列舉的變量類型一一對應(yīng)。一旦輸入出錯,中所列舉的變量類型一一對應(yīng)。一旦輸入出錯,不僅使當(dāng)前的輸入數(shù)據(jù)不正確,而且使得后面的提不僅使當(dāng)前的輸入數(shù)據(jù)不正確,而且使得后面的提取數(shù)據(jù)也不正確。取數(shù)據(jù)也不正確。133.2.2 輸入字符數(shù)據(jù)輸入字符數(shù)據(jù)例:例: char c1 , c2 , c3 ;char c1 , c2 , c3

14、 ; cin cin c1 c2 c3; c1 c2 c3;運行時:運行時:輸入:輸入:a a b b c c 或輸入:或輸入:abcabc 則則 變量變量 c1c1、c2c2、c3 c3 的值為的值為 a a 、b b 、c c cincin 自動跳過輸入的空格自動跳過輸入的空格14 欲將空格輸入給變量,則應(yīng)使用欲將空格輸入給變量,則應(yīng)使用 cin.getcin.get( ) ( ) 函數(shù)。函數(shù)。例:例: char c1 , c2 , c3 ;char c1 , c2 , c3 ; cin.get(c1); cin.get(c1); cin.get(c2); cin.get(c2); cin

15、.get(c3); cin.get(c3);運行時:運行時:輸入:輸入:a a b b c c 則則 變量變量 c1c1、c2c2、c3 c3 的值為的值為 a a 、 、b b 輸入:輸入:abcabc 則則 變量變量 c1c1、c2c2、c3 c3 的值為的值為 a a 、b b 、c c 15例例3.43.4:#include iostream.h#include void main( ) int a, b; char c, d; cin a b; cin c d; cout a , b , c , d endl; 用戶輸入:用戶輸入:12 34 5678 .12 34 5678 . 將

16、將1212賦值給變量賦值給變量a a,將,將3434賦值給變量賦值給變量b b。 將將55字符賦值給變量字符賦值給變量c c,將,將66字符賦值給變字符賦值給變量量d d。 剩余的剩余的77字符和字符和88字符將被舍棄。字符將被舍棄。16 還可以使用還可以使用cin.ignorecin.ignore( )( )函數(shù)對輸入的內(nèi)容有選函數(shù)對輸入的內(nèi)容有選擇的接收擇的接收。cin.ignorecin.ignore( )( )的作用是在字符讀取過程的作用是在字符讀取過程中忽略若干個字符,而讀取后面的字符。其格式為:中忽略若干個字符,而讀取后面的字符。其格式為: cin.ignorecin.ignore

17、( ( ); ); 例如:例如:cin a b; cin.ignore(3);cin c d; 輸入:輸入:12 34 12 34 565678 78 輸出結(jié)果:輸出結(jié)果:12, 34, 7, 812, 34, 7, 817 借助函數(shù)借助函數(shù)cin.getcin.get( )( )可以將三種分隔符作為字符可以將三種分隔符作為字符輸入計算機。輸入計算機。 函數(shù)函數(shù)cin.getcin.get( )( )的作用是把從鍵盤上輸入的每一的作用是把從鍵盤上輸入的每一個字符,包括空格符和回車符等分隔符都作為一個個字符,包括空格符和回車符等分隔符都作為一個輸入字符賦給字符型變量。其格式為:輸入字符賦給字符型

18、變量。其格式為: cin.get( ); 例如:例如:char c5, c6, c7, c8;char c5, c6, c7, c8; cin.get(c5); cin.get(c6); cin.get(c7); cin.get(c8); 如果用戶輸入:如果用戶輸入:A A B .B . c5 c5值為值為AA,c6c6值為值為 , c7c7值為值為BB,c8c8值為值為 183.3 cout 輸出流coutcout一般格式一般格式:cout . “ “”稱為插入運算符,表示將表達式的運算結(jié)稱為插入運算符,表示將表達式的運算結(jié)果插入到輸出流的末尾,即在顯示器上顯示。果插入到輸出流的末尾,即在顯

19、示器上顯示。 將將coutcout想象成顯示器,想象成顯示器,“”想象成數(shù)據(jù)流向箭想象成數(shù)據(jù)流向箭頭,可以很容易記憶輸出操作頭,可以很容易記憶輸出操作例例3.63.6:intint a=10, b=20, c=30, d=40; a=10, b=20, c=30, d=40; double m=5.23, n=100; cout a b endl; cout c n-d endl; cout m n endl;運行結(jié)果:運行結(jié)果:102030605.23100注意:注意:輸出數(shù)據(jù)之間無空白。輸出數(shù)據(jù)之間無空白。 endl 與與 n 等價。等價。輸出實型數(shù),小數(shù)點后若輸出實型數(shù),小數(shù)點后若為為0

20、,則不輸出小數(shù)點。,則不輸出小數(shù)點。193.3 cout 輸出流 為了區(qū)分輸出的數(shù)據(jù)項,在每一個輸出數(shù)據(jù)之間要輸出分隔為了區(qū)分輸出的數(shù)據(jù)項,在每一個輸出數(shù)據(jù)之間要輸出分隔符。分隔符可以是空格、標(biāo)點符號或者換行符等。符。分隔符可以是空格、標(biāo)點符號或者換行符等。 例如:例如:cout a , b endlcout a , b endl; ; cout c , n-d endl; cout m , n endl; 輸出結(jié)果:輸出結(jié)果:10, 2010, 20 30, 60 5.23, 100 例如:例如:cout a= a t b= b endl;cout c= c t n - d = n-d en

21、dl; cout m= m t n= n endl; 輸出結(jié)果:輸出結(jié)果:a=10 a=10 b=20b=20 c=30 100-40=60 m=5.23 n=100 t的意義的意義203.3 cout 輸出流 使輸出的數(shù)據(jù)項之間隔開的另一種辦法是使用使輸出的數(shù)據(jù)項之間隔開的另一種辦法是使用setwsetw( )( )函數(shù)來函數(shù)來指定輸出數(shù)據(jù)項的寬度。指定輸出數(shù)據(jù)項的寬度。 例如:例如:cout setw(10) a setw(10) b endl;cout setw(10) c setw(10) n-d endl;cout setw(10) m setw(10) n endl; setw(1

22、0) setw(10)指明其后的輸出項占用的字符寬度為指明其后的輸出項占用的字符寬度為1010(小數(shù)點占(小數(shù)點占一位),并且向右對齊。一位),并且向右對齊。setwsetw是是“set width”set width”的縮寫。的縮寫。 輸出結(jié)果為:輸出結(jié)果為:10 2030 605.23 100213.3 cout 輸出流 使用使用setwsetw( )( )函數(shù)應(yīng)該注意以下四點:函數(shù)應(yīng)該注意以下四點:1 1setwsetw( )( )函數(shù)是定義在函數(shù)是定義在iomanip.hiomanip.h頭文件中的系統(tǒng)函數(shù),頭文件中的系統(tǒng)函數(shù),所以要使用它就必須在程序的開始位置包含頭文件所以要使用它就

23、必須在程序的開始位置包含頭文件iomanip.hiomanip.h,即在程序的開頭增加:,即在程序的開頭增加: #include 2 2括號中必須給出一個正整數(shù)或者數(shù)學(xué)表達式(值為正括號中必須給出一個正整數(shù)或者數(shù)學(xué)表達式(值為正整數(shù)),它指明緊跟其后輸出的數(shù)據(jù)項的寬度。整數(shù)),它指明緊跟其后輸出的數(shù)據(jù)項的寬度。3 3該設(shè)置僅對其后的一個輸出項有效。一旦按指定的寬該設(shè)置僅對其后的一個輸出項有效。一旦按指定的寬度輸出其后的輸出項后,程序又自動回到原來的按實度輸出其后的輸出項后,程序又自動回到原來的按實際寬度輸出的缺省輸出方式。際寬度輸出的缺省輸出方式。4 4當(dāng)設(shè)置了數(shù)據(jù)的輸出寬度后,如果數(shù)據(jù)的實際

24、位數(shù)小當(dāng)設(shè)置了數(shù)據(jù)的輸出寬度后,如果數(shù)據(jù)的實際位數(shù)小于指定的寬度,則添加填充符。如果數(shù)據(jù)的實際位數(shù)于指定的寬度,則添加填充符。如果數(shù)據(jù)的實際位數(shù)大于指定的寬度,則數(shù)據(jù)按照實際的寬度輸出,不會大于指定的寬度,則數(shù)據(jù)按照實際的寬度輸出,不會按照指定的寬度來截斷數(shù)據(jù)。按照指定的寬度來截斷數(shù)據(jù)。223.3.1 輸出八進制、十六進制數(shù)和實數(shù)輸出八進制、十六進制數(shù)和實數(shù)例例3.7:#include void main(void) int a=10, b=20, c=30, d=40;double m=5.23, n=100;cout a= oct a t b= b endl; cout.setf(ios:scientific, ios:floatfield);/按照科學(xué)計數(shù)法輸出實數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論