C 的輸入工作

2021-08-29 08:03:42 字數 1879 閱讀 4766

乙個控制輸入的內容可以看做事乙個檔案的資訊

int i=0;

int tmp[

100]

; cin >> tmp[i]

;while

(i<

100&&

!cin.

eof())

for(

int j =

0; j < i; j++

)

上面程式可以多次寫入,也可以一次性寫入。

1.多次寫入:

每次寫入乙個整數回車,就可以再控制台連續多次輸入資料,最後ctrl+z新增輸入結束符,結束輸入資料。

2.一次寫入:

一次性寫入多個資料最後加上輸入結束符(1 2 3 4 5 ^z),與上是同樣的效果。

int i=0;

int tmp[

100]

; ifstream infile;

infile.

open

("input.txt");

infile >> tmp[i]

;while

(i<

100&&

!infile.

eof())

for(

int j =

0; j < i; j++

)

在檔案中寫入多個資料最後加上輸入結束符(1 2 3 4 5 ),都可以輸出同樣的效果。

總結:因此可以看出乙個控制台的輸入流可以看做是乙個輸入檔案,只是控制台的「輸入檔案」在結尾處沒有結尾標誌

ios::badbit 001 輸入(輸出)流出現致命錯誤,不可挽回 (檔案受損或者硬體故障)

ios::eofbit 010 已經到達檔案尾

ios::failbit 100 輸入(輸出)流出現非致命錯誤,可挽回 (如讀取型別中發生型別不匹配或者遇到eof時返回true)

ios::goodbit 000 流狀態完全正常, 各異常標誌位都為0 (注:good() 該方法在沒有發生任何錯誤時返回true)

因為乙個控制台輸入流可以看做是乙個檔案的輸入,所以檔案輸入和控制台輸入出現的四個標誌位可以相同的去看待

1. 在有輸入的程式中,在執行程式的時候想讓其控制台不立刻消失會加兩個cin.get(),原因就是控制台的輸入流中還有乙個換行符沒有讀取,所以需要乙個cin.get()讀取其中的換行符。

cin 讀取乙個char時,會省略輸入流中的空格和換行符;

get() 相當於c語言中的getchar,可以讀取輸入流中的空格和換行符;cin>>ch 方法可以輕鬆的跳過這些換行符,但是對於cin.get(ch)還會讀取字元後輸入流中還存在換行符;

getline() 讀取可以讀取乙個字串。並忽略輸入流中的換行符

寫程式時,應當時刻思考輸入流的狀態

如果接受到錯誤的輸入即cin.fail,則必須使用了那個cin.clear()重置輸入,然後還需要通過讀取不合法的輸入開丟棄它們。

double factor;

while(!

(cin>>factor)

)//判斷是否為合法的輸入

statement;

//對於正確輸入factor的處理

cin是乙個istream類的物件,使用cin作為輸入時(例如 cin>>factor)會返回乙個istream值,即cin,根據輸入是否成功,被轉換為bool值false或true

C 的標準輸入

昨天做題的時候,遇到乙個輸入是這樣的 3 4aaaa aaaa aaaa bbbbbbb bbbb ccc cccccccc d第一行輸入乙個整數n,表示接下來句子的數量,和另外乙個整數 這裡沒有作用,只是用來說明下面的乙個情況 接下來就是n個句子,每個句子以回車結束。我的想法是 int i,j c...

C 的字元輸入

字串的輸入有6中方式,這六種方式各有各的特點,我這篇學習筆記是自己的經驗總結,沒有去 記憶體,函式庫等的複雜問題,僅僅是為了實用 第一 cin cin一次接受乙個字元,所以有的人會選擇定義乙個字元型陣列,然後用cin迴圈進行輸入,但是cin的侷限性是 遇到空格就會停止接受字元 第二 ch1 cin....

C語言的輸入

pta有關字串輸入的問題老是記不清楚,在這裡記錄一下。c語言中,strlen函式用於求字串的長度。strlen從字元開頭算起,直到 0 為止,返回計數器的值,數值不包括 0 1 include2 include 3using namespace std 45 6int main 8size t le...