C 讀入一行字串

2021-09-12 14:03:59 字數 1180 閱讀 1517

在c++中,要讀取一行一共有三種方法

一.對於字元陣列:

方法一:getline()

讀入整行資料,它使用回車鍵輸入的換行符來確定輸入結尾。

呼叫方法: cin.getline(str, len);

第乙個引數str是用來儲存輸入行的陣列名稱,第二個引數len是要讀取的字元數。

1 #include 2 using namespace std;

3 4 int main()

5

方法二:get()

呼叫方法:cin.get(str, len);

1 #include 2 using namespace std;

3 4 int main()

5

那麼兩者有何區別?

兩者都讀取一行輸入,直至換行符。

然後,getline將丟棄換行符,而get()將換行符保留在輸入序列裡。

例如,假設我們連續兩次呼叫get():

cin.get(name, arsize);

cin.get(dessert, arsize);

由於第乙個呼叫後,換行符將留在輸入佇列中,因此第二次呼叫時看到的第乙個字元便是換行符。因此get()認為已到達行尾,而沒有讀取任何可讀取的內容。如果不借助於幫助,get()將不能跨過該換行符。

所以,在使用cin.get()輸入多行資料時,中間可以使用get()消除換行符。

1 #include 2 using namespace std;

3 4 int main()

5

因為get(str, len)和get()都是cin的類成員,所以可以合併起來寫:

1 #include 2 using namespace std;

3 4 int main()

5

二.對於string類

方法一:getline(cin, str)

這說明這裡的getline不是類方法。

1 #include 2 #include 3 using namespace std;

4 5 int main()

6

** 

C 讀入一行字串

getline 是 istream 類的成員函式,它有如下兩個過載版本 istream getline char buf,int bufsize istream getline char buf,int bufsize,char delim 第乙個版本從輸入流中讀取 bufsize 1 個字元到緩衝...

5 C 讀入一行字串

cin.getline char str,int size t,char delim 標頭檔案 include 引數1 字元陣列 引數2 讀入字串長度 引數3 終止符 示例 char str 105 cin.getline str,100 istream getline istream is,str...

C 輸入一行字串

一.對於字元陣列 方法一 getline 讀入整行資料,它使用回車鍵輸入的換行符來確定輸入結尾。呼叫方法 cin.getline str,len 第乙個引數str是用來儲存輸入行的陣列名稱,第二個引數len是要讀取的字元數。include using namespace std int main 方...