最近想刷題,於是通過通過一個簡單的例子發現以前學過的都忘了,那就從0開始積累吧
首先是c++的cin輸入:cin輸入的時候會識別空格,遇空格,回車就結束。
cin.get()則是獲取一個字符。
cin.get(數組名,數組個數),可接一串字符,比如說cin.get(a,20);就會接受19個字符放在數組a裏邊(最後一個是\0)。
cin.getline();
cin.getline()實際上有三個參數,cin.getline(接受字符串的看哦那間m,接受個數5,結束字符)
當第三個參數省略時,系統默認爲'\0'
如果將例子中cin.getline()改爲cin.getline(m,5,'a');當輸入jlkjkljkl時輸出jklj,輸入jkaljkljkl時,輸出jk
當用在多維數組中的時候,也可以用cin.getline(m[i],20)之類的用法:
#include<iostream>
#include<string>
using namespace std;
main ()
{
char m[3][20];
for(int i=0;i<3;i++)
{
cout<<"\n請輸入第"<<i+1<<"個字符串:"<<endl;
cin.getline(m[i],20);
}
cout<<endl;
for(int j=0;j<3;j++)
cout<<"輸出m["<<j<<"]的值:"<<m[j]<<endl;
}
請輸入第1個字符串:
kskr1
請輸入第2個字符串:
kskr2
請輸入第3個字符串:
kskr3
輸出m[0]的值:kskr1
輸出m[1]的值:kskr2
輸出m[2]的值:kskr3
當引用了#include<string>以後再去用getline就會直接輸出所輸入的字符串,例string str; getline(cin,str);
屬於string流;
gets()可輸入空格,最後會有\0。例 char *a=new char[1024]; gets(a); 輸入jk k k,輸出jk k k。
部分截自http://my.oschina.net/u/270597/blog/301684,支持原創。