[問題] cin.getline() 和 cin >> array 的差別

看板C_and_CPP (C/C++)作者時間13年前 (2013/04/27 17:35), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串1/1
大家好: 我想請問關於cin及cin.getline的問題 1) cin >> integer; cin >> an_char_array; 這樣為什麼會OK呢? 2) cin >> integer; cin.getline(an_char_array, 100); 這邊會發生沒辦法讓你輸入字元陣列 因為讀入integer後,\n被留下來了 cin.getline讀到\n就結束 我想問的是為什麼第一種情況卻不會發生這樣的問題呢? cin不是也是讀到空白或跳行等字元就結束嗎 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 27.247.50.45

04/27 17:38, , 1F
getline就是 "取下一行" 呀, 所以當然取到空字串囉
04/27 17:38, 1F

04/27 17:44, , 2F
那狀況一為什麼可以正常運作阿 CIN好像也是讀到換行就結束
04/27 17:44, 2F

04/27 17:48, , 3F
cin>>string 是 "取下一個字串"
04/27 17:48, 3F

04/27 22:04, , 4F
cin會一直略過空白和換行 直到讀入符合變數型態的資料
04/27 22:04, 4F

04/27 22:07, , 5F
這句當我沒說過 ^^^^^^^^^^^^^^^^^^^^^^^^^^
04/27 22:07, 5F

04/29 21:30, , 6F
看來c++的實作 >>是一定要讀到
04/29 21:30, 6F

04/29 21:30, , 7F
你所指定的型別才會停
04/29 21:30, 7F
文章代碼(AID): #1HUvlI9u (C_and_CPP)
文章代碼(AID): #1HUvlI9u (C_and_CPP)