#include
#include
using
namespace std;
intmain()
混用cin
和getline
的結果:
12
your age:12
your name:
請按任意鍵繼續. .
.
輸入 name 的**沒有等待使用者輸入就被跳過。
我們先看下 cin>> 與 getline 的工作方式:流運算子根據它後面的變數型別讀取資料,從非空白符號開始,遇到enter、space、tab鍵時結束;getline函式從istream中讀取一行資料,當遇到「\n」時結束返回。
造成程式錯誤結果的原因是,使用者輸入完 age 後按回車結束輸入,把「\n」留在了輸入流裡,而 cin 不讀換行符,這樣換行符就被 getline 讀取到,getline 遇到換行符返回,因此程式不會等待使用者輸入。
解決的辦法是手動清除換行符,在 cin>> 讀取資料後加上
cin.ignore();
#include
#include
using
namespace std;
intmain()
12
hello
your age:12
your name:hello
請按任意鍵繼續. .
.
cin>>和getline混用需謹慎
c++中的cin, cin.getline, getline等混合使用時不能輸入直接執行下一行的問題
cin.ignore()函式用法及cin.getline()用法舉例
C fstream和getline的用法
例如 檔案data.txt內容 1 輕 無 疼 燒 輕 2 輕 無 疼 正常 輕 通過c fstream和getline的方法將資訊讀到乙個二維陣列string data 方法一 適用於已知行數和列數,且要求以空格或製表符間隔 include include using namespace std ...
C 的getline()和get()函式
在介紹這兩個函式之前,我們最常使用的字元或者字串輸入函式是cin 所以我們應當明白有了cin之後為什麼還需要這兩個函式?一.cin函式cin a a如果是字元型別,讀取乙個位元組,a如果是字串型別,就讀取乙個單詞 賦值 將得到的輸入賦給a 讀取結束標誌 使用空白 空格,製表符和換行符 來確定字串的結...
關於getline和getchar注意的細節
關於getline和getchar注意的細節 link include include include using namespace std int main void system pause return 0 如果不加getchar 再輸入n時會有輸出常量。原因是cin輸入後,會存放在緩衝區,...