1 11 輸入輸出

2021-07-13 08:22:40 字數 1775 閱讀 9070

程式執行期間,從外設接收資訊的操作稱為「輸入」,向外設傳送資訊的操作稱為「輸出」。

本節介紹從鍵盤向程式中的變數輸入資料以及將程式計算的結果輸出到顯示器上的基本操作。c++中沒有專門的輸入輸出語句,而是通過系統提供的輸入輸出流類來實現。

cin和cout的書寫形式很靈活,如果有多個變數,即使型別不相同,也可以寫在同乙個語句中或者分成若干個語句輸入或輸出。

注意,使用cin和cout必須在程式開頭增加一行:

# include

或者兩行:

# include

using namespace std;

◆ 1、字元的輸入輸出

cin:用cin為字元變數輸入資料時,輸入的各字元之間可以間隔開也可以無間隔,系統會自動跳過輸入行中的間隔符(包括空格符,製表符,回車符等)。例如:

char c1, c2, c3;則

cin>>c1;      //a

cin>>c2>>c3;

執行過程為:

(1) 程式執行到a行時,等待使用者輸入資料;

(2) 若輸入:abc //cr代表回車符

(3) cin分別將字元a、b、c賦給變數c1、c2、c3。

若在第(2)步中輸入:a b c ,則結果一樣。

cin.get():用於提取鍵盤上輸入的所有字元(包括間隔符等),賦給字元變數。並且,cin.get()函式一次只能提取乙個字元的值,其格式為:

cin.get (字元變數);

舉例:設有定義char c1, c2, c3, c4;則下列語句的執行過程是:

cin.get (c1);

cin.get (c2);

cin.get (c3);

cin.get (c4);

程式執行過程中若輸入:

a b//ab間有空格

c則字元′a′、空格、′b′、回車分別賦給變數c1、c2、c3、c4;輸入緩衝區中保留字元′c′和回車符。

注意,cin與cin.get()是有區別的,cin自動跳過分隔符(如空格、回車);cin.get()不會。

字元輸出:字元間無間隔,如需間隔,可在資料間插入間隔符。如′\t′(製表符,自動跳過若干字元位置)、′\n′或endl(表示回車換行,並清空緩衝區)等。

◆  2、字串的輸入輸出

舉例:char city[11];

cin.getline(city, 10); //由鍵盤輸入城市名

cout << 「城市名:「 << city << endl;

其中:cin.getline() —— 第1個引數是已經定義的字元陣列名,第2個引數是讀入字元的最多個數(包括字串結束符『\0』)。

【執行結果】:從輸入行中提取最多9個字元(由cin.getline()的第2個引數指明),再加上乙個『\0』字元,輸入到字元陣列city(由cin.getline()的第1個引數指明)。輸出時,字元陣列輸出串結束符前的所有字元。

◆  3、十進位制資料的輸入輸出

請看下例:

int i, j;

float x, y;

cout<<」input i, j, x, y:」<

cin>>i>>j; //e

cin>>x>>y; //要求輸入十進位制資料

cout<<"i="<

cout<<"x+y="<

程式執行到d行,將輸出提示資訊:

input i, j, x, y:

並停留在e行,等待使用者輸入資料,若輸入:

10 20

4.5 8.6

則程式輸出:

i=10 j=20

x+y=13.1

常用技巧 輸入輸出優化 輸入輸出外掛程式

我們知道cin cout是比較慢的,不過它們可以加速。在 中加入這兩句即可 std ios sync with stdio false std cin.tie 0 加速過後cin的速度與scanf的速度近似 當然,加速過後就不要混用print和cout,scanf和cin了。因為不同步,後果會很嚴重...

uva oj java輸入輸出

真難的題目 狗屁演演算法 測資很機車 測驗結果 x.xx0 ms 測驗日期 200y mm dd author raymond wu 小璋丸 publicclassmain 載入單字的字元 while bytedata 1 else bytedata system.in.read catch exc...

檔案輸入 輸出

13.1 和檔案進行通訊 文字檢視和二進位制檢視 在文字檢視中,程式看到的內容和二進位制的內容可能不同,例如ms dos文字檔案用回車符和換行符的組合 r n來表示行尾,macintosh用乙個回車符 r來表示行尾。c程式使用乙個 n表示行尾。所以,如果c程式以文字檢視模式處理乙個ms dos文字檔...