C 基礎 控制台輸入輸出

2021-08-21 17:53:11 字數 4445 閱讀 3386

c++的類

ostream

提供了格式化輸出和無格式輸出的功能

輸出功能包括

1.標準型別的資料用流插入運算子

<<

輸出

格式:

cout

<<

資料項 ;

c++能自動判別資料型別,並根據資料型別解釋記憶體單元的資訊,把它轉換成字元顯示在顯示器上。

注意:1.c++中位址用十六進製制輸出。

2.如果輸出的指標變數是乙個指向字元的指標時,c++並不輸出該指標中儲存的位址,而是輸出該指標指向的字串。如果確實想輸出這個指向字元的指標變數中儲存的位址值,可以用強制型別轉換,將它轉換成void*型別。

#include using namespace std;

int main()

2.用成員函式put輸出字元

cout.put

(『a』)

; //

將乙個字元

a顯示在螢幕上,並返回當前物件。

用成員函連續呼叫put函式:

cout.put

(『a』).put(『\n』)

;//  

該語句在輸出字元

a後輸出乙個換行符

。圓點運算子

(.)從左向右結合。

cout.put

(65); //

用ascii

碼值表示式呼叫

put函式,語句也輸出字元a。

3.write的無格式輸出

basic_ostream& write(const char_type* s,streamsize n);//模板原型
呼叫成員函式

write

可實現無格式輸出。不管資料型別,傳給它的是位元組流,看成字元陣列,把每個位元組解釋成字元。它有兩個引數。第乙個引數提供了要顯示的字串的位址,第二個引數指出要顯示多少個位元組,是乙個整型值。這個函式把一定量的位元組從字元陣列中輸出。這些位元組都是未經任何格式化的,僅僅是以原始資料形式輸出。

cout.write(buffer, 10  );// 輸出buffer的10個位元組

cout.write(「abcdefghijklmnopqrstuvwxyz」, 10);// 顯示了字母表中的前10個字母。

1.流讀取運算子 >>

輸入流最常用的操作是流讀取運算子。

2.成員函式read()

read函式和ostream中的write函式相對應,write可以實現無格式輸出,這裡read函式可以實現無格式輸入,把輸入看出是字元的形式不管你輸入流的每個字元是什麼含義包括空格字元,都統統將每個輸入看出是乙個字元,如輸入「0 1 2」是輸入了三個字元,放在乙個字元陣列裡邊。

read函式它有兩個引數。第乙個引數是乙個指向字元的指標,第二個引數是乙個整型值。這個函式把一定量的位元組從輸入緩衝區讀入字元陣列,不管這些位元組包含的是什麼內容

char buffer[80] ;

cin.read(buffer, 10 );//讀入10個位元組,放入buffer

注:如果還沒有讀到指定的字元數,遇到了eof,則讀操作結束。此時可以用成員函式gcount統計輸入的字元個數。

例子:

#include using namespace std;

int main()

//輸出結果

輸出結果:enter a sentence:

using the read, write, and gcount member functions

the sentence entered was:

using the read,write

一共輸入了 20個字元

3.get函式和getline函式

使用》沒辦法讀入空白字元、換行等特殊字元,而get函式和getline函式能夠讀取任意的字元

get函式用於讀入字元或字串、getline函式用於讀取字串

3.1get函式

有三種格式:不帶引數、帶乙個引數、帶三個引數

不帶引數的get函式從當前輸入物件流中讀入乙個字元,包括空白字元以及表示檔案結束的eof字元,並將讀入值作為函式的返回值返回。

while((ch=cin.get())!=eof)

cout《帶

乙個字元型別的引用引數,它將輸入流中的下一字元(包括空白字元)儲存在引數中,它的返回值是當前物件的引用。

引數分別是接收字元的字元陣列、字元陣列的大小和分隔符

(預設值為『

\n』)。

函式結束:(1)在讀取比指定的最大字元數少乙個字元後結束,(2)在遇到分隔符時結束。

為使字元陣列

(被程式用作緩衝區

)中的輸入字串能夠結束,空字元會被插入到字元陣列中。函式不把分隔符放到字元陣列中,但是分隔符仍然會保留在輸入流中。

//1.要輸入一行字元,可用下列語句:

cin.get(ch, 80, 』\n』);

//或

cin.get(ch, 80);

//2.要輸入乙個以句號結尾的句子,可用下面的語句:

cin.get(ch, 80, 』.』);

當遇到輸入結束符時,程式插入乙個』

\0』作為輸入字串的結束標記,輸入結束符沒有放在字元陣列中,而是保留在輸入流中,下乙個和輸入相關的語句會讀入這個輸入結束符。如下面句子:

cin.get(ch, 80, 』.』);

// 使用者輸入

abcdef.↙

ch中儲存的是字串「

abcdef

」,而「.」仍保留在輸入緩衝區中。如果繼續呼叫

cin.get

(ch1); 

或  

cin >> ch1 ;

則字元變數

ch1中儲存的是「.」

3.2getline函式

與帶三個引數的

get函式類似,它讀取一行資訊到字元陣列中,然後插入乙個空字元。所不同的是,

getline

要去除輸入流中的分隔符

(即讀取字元並刪除它

),但是不把它存放在字元陣列中。

輸入輸出流中的整型數預設為十進位制表示。為了使流中的整型數不侷限於十進位制,可以插入

hex操縱符將基數設為十六進製制,插入

oct操縱符將基數設為八進位制,也可以插入

dec操縱符將基數重新設為十進位制

也可以通過流操縱符

setbase

來改變流的基數。該操縱符有乙個整型引數,它的值可以是16,

10或8,表示將整型數的基數設為十六進製制,十進位制或八進位制

使用任何帶引數的流操縱符,都必須包含標頭檔案

iomanip。

流的基數值只有被顯式更改時才會變化,否則一直沿用原有的基數。

#include #include using namespace std;

int main()

//輸出為

enter a octal number: 30

octal 30 in hexdecimal is: 18

hexdecimal 18 in decimal is: 24

octal 30 in octal is: 30

設定浮點數的精度(即,實型數的有效位數)可以用(1)流操縱符

setprecision、(2)

基類ios

的成員函式

precision來實現。一旦呼叫了這兩者之中的某乙個,將影響所有輸出的浮點數的精度,直到下乙個設定精度的操作為止。

這個操縱符和成員函式都有乙個引數,表示有效位數的長度。

#include #include using namespace std;

int main()

// 或 for (int i = 9; i > 0; --i)

// cout << setprecision(i) << x << '\t' << y << endl;

return 0;

}//輸出結果

執行結果:

123.456789 9876.54321

123.45679 9876.5432

123.4568 9876.543

123.457 9876.54

123.46 9876.5

123.5 9877

123 9.88e+003

1.2e+002 9.9e+003

1e+002 1e+004

控制台輸入 輸出

1 使用input 方法可以進行控制台輸入 例 name input 請輸入名字 此時控制台會顯示 請輸入名字 輸入完畢後按下enter會將使用者輸入的內容賦值給name變數 name input 請輸入名字 print 你好 name 2 print 輸出的多種形式 在列印結尾顯示內容 print...

C C 控制台輸入輸出

c 1.輸入 1 readline string input console.readline 讀取一串字元,直到使用者按下回車。string input while input console.readline null 若要讀取一行多個數字,可以使用如下方法 string str str inp...

python控制台輸入 輸出

python 注釋 變數 型別 python運算子 比較 邏輯運算子 print 我是簡單的字串輸出 控制台執行結果 我是簡單的字串輸出age 18 print 我今年 d歲 age age 1 print 我今年 d歲 age age 1 print 我今年 d歲 age 控制台列印結果 我今年1...