C 輸入cout與輸出cin

2021-09-08 18:18:48 字數 2704 閱讀 3426

輸入和輸出並不是c++語言中的正式組成成分。c和c++本身都沒有為輸入和輸出提供專門的語句結構。輸入輸出不是由c++本身定義的,而是在編譯系統提供的i/o庫中定義的。

c++的輸出和輸入是用「流」(stream)的方式實現的。圖3.2和圖3.3表示c++通過流進行輸入輸出的過程。

有關流物件cin、cout和流運算子的定義等資訊是存放在c++的輸入輸出流庫中的,因此如果在程式中使用cin、cout和流運算子,就必須使用預處理命令把頭檔案stream包含到本檔案中:

#include

儘管cin和cout不是c++本身提供的語句,但是在不致混淆的情況下,為了敘述方便,常常把由cin和流提取運算子「>>」實現輸入的語句稱為輸入語句或cin語句,把由cout和流插入運算子「<

cout語句的一般格式為:

cout《表示式1《表示式2<

cin語句的一般格式為:

cin>>變數1>>變數2>>……>>變數n;

在定義流物件時,系統會在記憶體中開闢一段緩衝區,用來暫存輸入輸出流的資料。在執行cout語句時,先把插入的資料順序存放在輸出緩衝區中,直到輸出緩衝區滿或遇到cout語句中的endl(或'\n',ends,flush)為止,此時將緩衝區中已有的資料一起輸出,並清空緩衝區。輸出流中的資料在系統預設的裝置(一般為顯示器)輸出。

乙個cout語句可以分寫成若干行。如

cout>b>>c>>d;

可以寫成

cin>>a //注意行末尾無分號

>>b //這樣寫可能看起來清晰些

>>c

>>d;

也可以寫成

cin>>a;

cin>>b;

cin>>c;

cin>>d;

以上3種情況均可以從鍵盤輸入:

1  2  3  4 ↙

也可以分多行輸入資料:

1↙2  3↙

4↙在用cin輸入時,系統也會根據變數的型別從輸入流中提取相應長度的位元組。如有

char c1, c2;

int a;

float b;

cin>>c1>>c2>>a>>b;

如果輸入

1234 56.78↙

注意: 34後面應該有空格以便和56.78分隔開。也可以按下面格式輸入:

1 2 34 56.78↙ (在1和2之間有空格)

不能用cin語句把空格字元和回車換行符作為字元輸入給字元變數,它們將被跳過。如果想將空格字元或回車換行符(或任何其他鍵盤上的字元)輸入給字元變數,可以使用getchar函式。

在組織輸入流資料時,要仔細分析cin語句中變數的型別,按照相應的格式輸入,否則容易出錯。

上面介紹的是使用cout和cin時的預設格式。但有時人們在輸入輸出時有一些特殊的要求,如在輸出實數時規定字段寬度,只保留兩位小數,資料向左或向右對齊等。c++提供了在輸入輸出流中使用的控制符(有的書中稱為操縱符),見表3.1。

表 3.1 輸入輸出流的控制符

控制符作 用dec

設定數值的基數為10

hex設定數值的基數為16

oct設定數值的基數為8

setfill(c)

設定填充字元c,c可以是字元常量或字元變數

setprecision(n)

設定浮點數的精度為n位。在以一般十進位制小數形式輸出時,n代表有效數字。在以fixed(固定小數字數)形式和 scientific(指數)形式輸出時,n為小數字數

setw(n)

設定字段寬度為n位

setiosflags( ios::fixed)

設定浮點數以固定的小數字數顯示

setiosftags( ios::scientific)

設定浮點數以科學記數法(即指數形式)顯示

setiosflags( ios::left)

輸出資料左對齊

setiosflags( ios::right)

輸出資料右對齊

setiosflags( ios::skipws)

忽略前導的空格

setiosflags( ios::uppercase)

資料以十六進製制形式輸出時字母以大寫表示

setiosflags( ios::lowercase)

資料以十六進製制形式輸出時宇母以小寫表示

setiosflags(ios::showpos)

輸出正數時給出「+」號

需要注意的是: 如果使用了控制符,在程式單位的開頭除了要加iostream標頭檔案外,還要加iomanip標頭檔案。

舉例, 輸出雙精度數:

double a=123.456789012345;  // 對a賦初值

1) cout<

#include #include using namespace std;

int main( )

{ double a=123.456,b=3.14159,c=-3214.67;

cout輸出如下:

123.46 (字段寬度為10,右對齊,取兩位小數)

3.14

-3214.67

先統一設定定點形式輸出、取兩位小數、右對齊。這些設定對其後的輸出均有效(除非重新設定),而setw只對其後乙個輸出項有效,因此必須在輸出a,b,c之前都要寫setw(10)。

程式設計師的基礎教程:菜鳥程式設計師

C 輸入cout與輸出cin

輸入和輸出並不是c 語言中的正式組成成分。c和c 本身都沒有為輸入和輸出提供專門的語句結構。輸入輸出不是由c 本身定義的,而是在編譯系統提供的i o庫中定義的。c 的輸出和輸入是用 流 stream 的方式實現的。圖3.2和圖3.3表示c 通過流進行輸入輸出的過程。有關流物件cin cout和流運算...

C 輸入與輸出 cin與cout

輸入輸出不是由c 本身定義的,而是在編譯系統提供的i o庫中定義的,用 流 stream 的方式實現的 有關流物件cin cout和流運算子的定義等資訊是存放在c 的輸入輸出流庫中的,故如果在程式中使用cin cout和流運算子,就必須使用預處理命令把頭檔案stream包含到本檔案中 include...

c 標準輸入輸出流 cin和cout

輸入原理及簡介 cin為c 標準輸入流物件,包含在iostream中。cin直接從輸入緩衝區中取出資料,當遇到 回車鍵,空格鍵,換行鍵時結束,並將取出的資料賦給 後的變數,該變數可以為任意資料型別。用法表示式 cin 變數1 變數2 實現 include using namespace std in...