[問題] cin.get()與cin.getline()有什麼不同?

看板C_and_CPP (C/C++)作者 (快樂蕃茄)時間8年前 (2017/11/16 21:06), 編輯推噓1(107)
留言8則, 5人參與, 8年前最新討論串1/1
請問cin.get()與cin.getline()有什麼不同? 我查書上是寫 get(str,MAX,DELIM) 用途:擷取字元到陣列 str 中,直到已經擷取了 MAX 個字元或分隔字元 出現為止,分隔字元會留在資料流中。 getline(str,MAX,DELIM) 用途:擷取字元到陣列 str 中,直到已經擷取了 MAX 個字元或分隔字元 出現為止,而且會擷取分隔字元。 什麼時後該用 cin.get() 什麼時後該用 cin.getline() 呢...? 寫了個小程式來測試一下 #include <iostream> using namespace std; int main() { char a[20],b[20]; /* 執行ok cin.getline(b,20); cout<<b<<endl; cin.get(a,20); cout<<a<<endl; */ //會有問題 cin.get(a,20); cout<<a<<endl;//以下被吃掉 cin.getline(b,20); cout<<b<<endl; return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.224.171.19 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1510837578.A.C8A.html

11/16 22:30, 8年前 , 1F
讀到分隔字元就停囉
11/16 22:30, 1F

11/17 00:04, 8年前 , 2F
就跟書上寫的一樣啊, get 讀到換行停, 不拿走換行本身
11/17 00:04, 2F

11/17 00:04, 8年前 , 3F
第二個例子 get 看到換行停下, getline 讀到的第一個字
11/17 00:04, 3F

11/17 00:05, 8年前 , 4F
元就是被留下的換行, 就把換行拿走收工, 得到看到的結果
11/17 00:05, 4F

11/17 07:40, 8年前 , 5F
getline的使用很好懂,但是不知道什麼時候才會用到get?
11/17 07:40, 5F

11/17 10:06, 8年前 , 6F
get的泛用性蠻高的,最簡單的理解應該是
11/17 10:06, 6F

11/17 10:07, 8年前 , 7F
char c = std::cin.get(); XD
11/17 10:07, 7F

11/18 04:20, 8年前 , 8F
.get()不是底層method 沒事不要用嗎
11/18 04:20, 8F
文章代碼(AID): #1Q3OrAoA (C_and_CPP)
文章代碼(AID): #1Q3OrAoA (C_and_CPP)