對於字元陣列
方法一:getline()
讀入整行資料,使用回車鍵輸入的換行符來確定輸入結尾。
呼叫方法:
cin.getline(str, len)
第乙個引數str用來儲存輸入行的陣列名稱,第二個引數是要讀取的字元數。
方法二:
cin.get(str, len)
兩者都是讀取一行輸入,直至換行符。
然後,getline將換行符丟棄,而get()將換行符保留在輸入序列裡
對於string類:
方法一:getline(cin, str)
c輸入使用scanf函式,但scanf預設回車和空格是輸入不同組之間的間隔和結束符號,所以輸入帶空格,tab或者回車的字串是不可以的,解決方法如下
1)利用格式符「%」它的作用為掃瞄字元集合。scanf(「%[^c]」,str); 其中「c」是乙個具體的字元常量(包括控制字元)。當輸入字串時,字元「c」將被當作當前輸入的結束符。利用此格式符就可以由程式設計者自己指定乙個輸入結束符。
void main()
(2)使用gets函式,gets函式是以回車作為結束符
char
str[40];
gets(str);
因為cin通過空格、換行符、製表符來確定結束位置,所以只有1被附給data,如果你要將「1 2 3 4 55」作為乙個字串輸出,你可以這樣寫:
int i=0;
string data;
cin>>i;
cin.get(); //這應該懂吧,讀取換行符,因為換行符在你按回車時還在輸入佇列中
getline(cin,data); //正因為cin.get()將換行符讀取了,這行**可以讀取一行,否則將直接讀取換行符,這樣子這一行的內容都存進data字元變數中
cout
0;
cin遇到空格和回車就會截斷,如果想讀取帶空格的字串,可以先讀一行在處理 C C 輸入帶空格的字串
機試的時候碰到的問題,當時腦子卡克到想不出來怎麼處理,用了一種賊複雜的方法,現在整理下!include include int main 一句gets解決的事情,我居然tm沒想起來。太羞恥了 include include int main include include int main incl...
C C 中輸入帶空格的字串用法總結
在c c 中,傳統的輸入流scanf s str 和cin str,遇到空格會返回空格之前的字串。但是在很多應用中,我們需要字串中可以同時包含空格,那麼前面的兩種方法現在就不可用了,在c c 中給我們提供了那些輸入流處理方式呢。下面是我總結的幾種常用的方法 1 gets char str 需要包含標...
C 連續輸入帶空格的字串
測試檔案 測試1 include include include using namespace std int main 測試結果 顯然cin s不能夠接受空格的輸入 測試2 include include include using namespace std int main 測試結果 顯然g...