原創作品,轉載請注明來源:http://www.cnblogs.com/shrimp-can/p/5241544.html
1.cin>>
1)最常見的是獲取輸入的一個字符或數字,如
int a,b;
cin>>a>>b;
注意:cin>>會自動過濾掉不可見字符(如空格 回車 tab等)。若不想過濾掉空白字符,可以用noskipws流進行控制。
如下程序,沒有過濾掉不可見字符,輸入的空格字符存入了input[1]中,也可輸出。
2)獲取輸入的字符串,可以用數組或string類型。如
char a[20];
cin>>a;
cout<<a<<endl;
或者string類型:
string s;
cin>>s;
cout<<s<<endl;
注意:遇到空格、回車等會結束獲取輸入的字符串,后面的字符串會過濾掉(存放在輸入流中)。如果后面還需要輸入字符串,則會從前面存放的字符串開始獲取。
遇空格、回車等結束。
po存放在了string中。
2.cin.get()
1)cin.get(字符變量名),用來接收字符,只獲取一個字符,可以接收空格,遇回車結束
2)cin.get(數組名,接收字符數目),用來接收字符串,可以接收空格,遇回車結束。
注意:數組的最后一個字符會是‘\0’,設接收字符數目為n,如果輸入的字符串大於等於n,則實際接收到的輸入是字符串的前面n-1個字符,包括空格(不包括回車,遇到回車就結束了),會自動在后面增加一個‘\0’。
3)cin.get(),沒有參數,主要用於舍棄輸入流中不需要的字符,或者舍棄回車,即舍棄輸入流中的一個字符。
沒有用cin.get(),則后面的s會從輸入流中繼續讀入
有cin.get(),則h后面的s被省略了。
3.cin.getline()
實際是cin.getline(接收字符串到m,接收個數n,結束字符)。接收一個字符串,可以接收空格等,最后一個字符為‘\0’。結束符可以通過設置第三個參數自己設置,默認是回車。m不能為string類型。
注意:實際接收到的要比n少一個,因為最后一個字符為'\0'。
4.getline()
用於string類的。使用需包含頭文件#include<string>。getline(cin,string s),接收一個字符串,可以接收空格、回車等
與cin.getline()的區別:1.cin.getline()接收輸入字符串的是數組,getline()是string類型。
2.cin.getline()可以接收空格,但不能接收回車;getline()可以接收空格和回車
3.cin.getline()會在數組結尾是'\0',getline()不會
5.gets()
gets(m)用於string類的,需包含#include<string>。可以接收空格,遇回車結束。可用於多維數組。
6.getchar()
m=getchar(),需包含#include<string>
參考:
http://blog.csdn.net/jiangxinnju/article/details/20492453