C cin和getline的辨析

2021-10-09 11:32:52 字數 956 閱讀 5242

#include

#include

using

namespace std;

intmain()

混用cingetline的結果:

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輸入後,會存放在緩衝區,...