第03章輸入和輸出_第1頁
第03章輸入和輸出_第2頁
第03章輸入和輸出_第3頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第3章輸入和輸出藪國H澤Y鱷羊宦把他E矍3-1 C+的輸入和輸出兩種工/o方式保留自C的一通過標準的工/O函數實現面向對象的一類型安全的,編譯器對輸入輸 出操作做嚴格的類型檢查-建議盡量使用面向對象的工/O方式3.2標準輸入與輸出函數字符輸入函數getchar int getchar(void);字符輸出函數putchar int putchar (int c );例子:字符輸入輸出/ ex3_l upp# include int main ()char a=1 a1 r b=1b1A c;c = get char ();putchar(a);putchar(b); putchar(1c1);

2、putchar(c);putchar(1n 1;putchar(0101);putchar(1n1 );return 0;程序運行如果SabcsnA格式化輸入函數scanf輸入各種類型的數據,并存入相應的參數中讀取輸入流中的指定的字符跳過輸入流中的指定的字符33格式化輸入輸出(2/12)scxf 格式控制串r參數列表)勰瞬謡鑑歸酹Tab鍵和回車鍵)和非空白字符(普通字符)-呼0癢參數之間用scanf(n%d %f %d r&numl了 &num2 r &num3);12 345 678 scanf函數的格式指示符% * 寬度轉換說明符 %是格式指示符的前導符-*賦值抑制符,表示該格式指示符對應

3、的數 據讀入后,不賦給相應的變量scanf(H%d %*d %d %dH,&numl&num2 &num3);輸入 12 34 567 89 scanf函數的格式指示符% * 寬度轉換說明符寬度是任選項,為一整數n ,指明了該輸入 數據長度為n ,如果有多余的部分將被舍棄scanf(H%3c%3cH,&chi,&ch2);chi和ch2均為字符型變量,輸入為: abcdefg scanf函數的格式指示符 % * 寬度轉換說明符轉換說明符d十進制整型量e實型的指數形式O八進制整型量g和e的較短形式X十六進制整型量c字符U無符號十進制整型s字符串1l8h輸入sho上七或long類型數據f實型的小數

4、形式1或L用于輸入double或long double類型數據格式化輸出函iKprintf-指定浮點值保留的小數位數-浮點值小數點對齊輸出數據的右對齊和左對齊將直接字符插入到輸出數據中將浮點數按照指數形式輸出將整數按照八進制或十六進制形式輸出按指定的域寬和精度輸出數據格式化輸出函數printfprintf (V格式控制串孑V參數列表); V格式控制串描述了輸出數據的格式??梢裕?種類型的字符格式指示符,則被參數列表中相應的數據替換轉義字符,按其含義輸出相應的特殊符號普通字符,按照原樣輸出格式化輸出函數printfprintf (V格式控制串,V參數列表); 參數列表存放輸出數據的表達式列表。

5、格式指示符的數量、順瘵與輸出參數相對應。-printf函數執(zhí)行時,從左到右依次處理格式控 制串,遇到格式控制字符,先計算相應的輸出參 數表達式,然后將該參數的計算結果按照格式指 示符指左的方式輸出格式化輸出函數printfprintf (V格式控制串,V參數列表); V格式控制串中的格式指示符% V標志V域寬精度V轉換說明符其中V標志、V域寬 和 精度可選格式化輸出函iKprintf v格式控制串中的格式指示符% 標志域竟精度轉換說明符 共五種不同的標志含義-輸出在域競內左對齊+在正數值之前顯示一個加號,在負數值之前顯示一個減號空格在正數值之前顯示一個空格#與八進制轉換說明符。一起使用時,在輸

6、出值之前加0 ;與十六 進制轉換說明符X或X起使用時,在輸出值之前加Ox或OX0用。填充域競格式化輸出函數printf 格式控制串中的格式指示符% V標志V域競V.精度V轉換說明符域寬,指明了數據打印的寬度。如果數據實際長 度小于域寬,則數據輸出右對齊;如果數據實際 長度大于域寬,系統(tǒng)自動突破域競限制,按數據 的實際長度輸出 V格式控制串中的格式指示符-精度:對于整數,表示至少要打印的數字個數,如果數據長 度小于精度,則左邊補齊0 ;如果數據實際長度大于精度,則 按數據實際長度輸出。對于浮點數,如果轉換說明符為d E和f ,精度表示小數點后 的有效位數,如果數據小數部分的長度小于精度,則在右邊

7、 補齊0 ;否則按精度對數據進行舍入輸出。如果浮點數的轉換說明符為g和G ,精度表示打印數據的最大 的長度。對于字符串,精度表示字符串輸出的最大長度,如果輸出字 符串長度小于精度,則按照字符串的實際長度輸出;否則按 精度截取輸出字符串開頭的n個字符(假設精度為n )輸出例子2 :格式化輸入輸出例子(1/2)/ ex3_2 . cpp:基本格式化輸入和輸出# include int main ()int numl;float num2;char ch2;int naA nb r no r ndr ne r nfr ng;double da. r db A de;printf(nBasic inp

8、ut and output:nn);printf(uInput a charA a int and a float:n); scanf(n%c %d %fn r &uhlr&numlr &num2 );printf(nchl=%c, numl=%dA num2=%fnn Achiynuml/num2);例子2 :格式化輸入輸出例子(2/2)printf( HPlease enter seven integers: n ); scanf( H%d%i%i%i%o%u%xH&HS &nb, &H6 &nd? &ne, &ng ); printf (n%d %d %d %d %d %d %dnn r

9、na A nb A nc r nd r ne r nfr ng ); scanf( H%le%lf%lgH, &d&db, &du ); printf ( n%f n%f n%f nn r da. r db A de );return 0;3.4用流進行輸入輸出(1/3)通過工/o流對象實現輸入輸出功能將實現數據傳送操作的設備抽象成對象將流作為設備(如鍵盤.顯示器等)和程 序之間通訊的通道 C+預定義的四個輸入輸出對象 cout, 標準輸出設備,即顯示器 標準輸入設備#即鍵盤 cerr和clog代表標準錯誤流對象3.4用流進行輸入輸出(2/3)通過uout流輸出數據cout 表達式;cout

10、表達式1 表達式2; coutWelcome to C+ ? nH ;coutH123 + 456 = n (123 + 456) endl ;3.4用流進行輸入輸出(3/3)通過uin流輸入數據cin cin 例子3 :流輸入輸出例子/ex3_5 cpp#include int main ()char c ;int i ;float x A y ;cout nEnter: nn ;cin i x y ;c=i;cout nc=n c nti=n i;cout ntx=n x nty=n y nnn return 0;3.5流操縱算子(1/4)流操縱算子一為流輸入輸出提供格式化輸入輸出的功 能

11、堂田的濟塌幼筲N流操縱磐setbase (b)以進制基數b為輸出整數值setprecision(n)將浮點精度設置為nsetw(n)按照w個字符來讀或者寫flush刷新o s t ream緩沖區(qū)ends插入字符串結束符/然后刷新ostream緩沖區(qū)endl插入換行符/然后刷新ostream緩沖區(qū)ws跳過空白字符setfill(ch)用ch填充空白字符3.5流操縱算子(2/4)設置整數基數-將整數按十進制.八進制和十六進制等形式輸出流操縱算子oct將整數輸出形式設置為八進制 流操縱算子hex將整數輸出形式設置為十六進si流操縱算子dec將整數輸出形式設置為十進制例子4 :使用設置整數基數的流操縱

12、算子#include #include int main ()int n;coutEnteradecimalnumber: H;cin :n;coutn vvin hexadecimal is: nhexnendldecnn inoctal is: noctnendl;return0;3.5流操縱算子(3/4)設置浮點數精度precision都可控制浮點數小數點后面的位數例子5 :使用設置浮點數精度的流操縱算子/ex3_7.cpp:設置浮點數精度的流操縱算子的使用#include #include #include int main ()double log2 = log( 2.0 );int

13、 places;cout nlog(2) with precisions 0-9 n” nPrecision set by the n nprecision member function:n endl; for ( places = 0; places = 9; places+ )cout.preuision( places );cout log2 1n1;例子5 :使用設置浮點數精度的流操縱算子cout nnPrecision set by the n setprecision manipulator:n;/ 使fflsetprecision?for ( places = 0; places = 9; places+ ) coutsetprecision (places) log2 1 n1 ; return 0;3.5流操縱算子(4/4)設置域竟函數width可以設置當前域寬(輸入輸出的字符數)如果輸出的數據所需的寬度比設置的域寬小, 空位用填充字符(省缺為空格)填充如果輸出的數據所需的寬度比設置的域寬大, 系統(tǒng)輸出所有位流操縱算子setw也可以設置域寬例子6 :使用設置域竟的流操縱算子/ex3_8 upp:設置域寬的流操縱算子的使用 #include #define WIDTH

溫馨提示

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

評論

0/150

提交評論