C 裡讀取一行字串

2021-07-15 09:18:25 字數 1293 閱讀 2971

大家在學習c++程式設計時,一般在輸入方面都是使用的cin.

而cin是使用空白(空格,製表符和換行符)來定字串的界的。

這就導致了對於帶有空格的字串,比如」i love c++奮鬥樂園論壇」

只能讀入」i」,後面的都無法讀入。

這時怎麼辦?

一.對於字元陣列:

方法一:getline()

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

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

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

#include 

<

iostream

>

2using

namespace

std;34

intmain()5

方法二:get()

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

#include 

<

iostream

>

2using

namespace

std;34

intmain()5

那麼兩者有何區別?

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

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

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

#include 

<

iostream

>

2using

namespace

std;34

intmain()5

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

#include 

<

iostream

>

2using

namespace

std;34

intmain()5

二.對於string類

方法一:getline(cin, str)

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

#include 

<

iostream

>

2#include 

<

string

>

3using

namespace

std;45

intmain()6

C 讀取一行字串的方式

大家在學習c 程式設計時,一般在輸入方面都是使用的cin.而cin是使用空白 空格,製表符和換行符 來定字串的界的。這就導致了對於帶有空格的字串,比如 i love acm 只能讀入 i 後面的都無法讀入。這時怎麼辦?方法一 getline 讀入整行資料,它使用回車鍵輸入的換行符來確定輸入結尾。呼叫...

C 每次讀取一行字串輸入

c 的istream中的類 如cin 提供了一些面向行的類成員函式 getlinr 和get 這兩個函式都讀取一行輸入,直到到達換行符。然而,隨後getline 將丟棄換行符,而get 將換行符保留在輸入佇列中。1.getline getline 函式讀取整行,它使用通過回車鍵輸入的換行符來確定輸入...

C 輸入一行字串

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