(1)每次讀取一行輸入
getline()和get()函式都讀取一行輸入,直到達到換行符,但是getline()將丟棄換行符,get()將換行符保留在輸入序列中
(2)首先介紹getline()
呼叫方法是cin.getline(),如果陣列只有19個字元,餘下空間用於儲存自動在結尾處新增空字元,getline()成員函式在讀取指定數目的字元或者遇到換行符時自動停止讀取,並且在讀取完輸入內容後,讀到使用者按下的enter鍵而生成的換行符,並將換行符替換為空字元,用來儲存
(3)get()函式
假如連續兩次呼叫cin.get(),會導致乙個讀到換行符而不進行輸入,所以get還有另外一種變體解決這個問題
cin.get(a,10)
cin.get()
cin.get(s,10)
這樣可以較好的解決這個問題
(4)空行的問題
遇見空行,為了避免get()讀進去,因為當讀到空行時,get()將設定乙個失效位(faikbit)這意味著接下來的輸入將被阻斷,但是可以用下面的命令來恢復輸入
cin.clear();
另乙個潛在的問題是輸入的字串比分配的多,getline()還會設定失效位,並關閉後面的輸入
(5)混合輸入字串和數字
cin>>a
coutinclude//庫函式
字串筆記(C Primer Plus)
有乙個字串陣列是很方便的,這樣就可以使用下標來訪問多個不同的字串。下面是乙個例子 const char mytal 5 也可以採用二維陣列 char mytal 2 5 81 c庫提供了3個讀取字串的函式 scanf gets fgets char name 81 gets name char pt...
《C primer plus》的字串習題
題目 編寫乙個接受乙個指向字串的指標作為引數,並返回該字串的長度的函式。include intstrlen char str int main void int strlen char str return i 執行無誤 設計乙個函式,接受乙個指向字串的指標,返回指向該字串第1個空格字元的指標,或如...
C primer plus 系列2 字串
1 將字串存在陣列中的兩種方法 2 如何在陣列中使用字串 3 cin只能讀取乙個單詞,讀到換行符認為字串結束 4 介紹cin.get cin.getline 1 將字串存在陣列中的兩種方法 int a 5 0 用來標記字串結尾 int a 5 food 稱為字串常量 2 在陣列中使用字串 inclu...