1、cin>>
用法1:最基本,也是最常用的用法,輸入一個數字:
#include <iostream> using namespace std; main () { int a,b; cin>>a>>b; cout<<a+b<<endl; }
輸入:2[回車]3[回車]
輸出:5
用法2:接受一個字符串,遇“空格”、“TAB”、“回車”都結束
#include <iostream> using namespace std; main () { char a[20]; cin>>a; cout<<a<<endl; }
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkljkl jkljkl //遇空格結束
輸出:jkljkl
2、cin.get()
用法1: cin.get(字符變量名)可以用來接收字符
#include <iostream> using namespace std; main () { char ch; ch=cin.get(); //或者cin.get(ch); cout<<ch<<endl; }
輸入:jljkljkl
輸出:j
用法2:cin.get(字符數組名,接收字符數目)用來接收一行字符串,可以接收空格
#include <iostream> using namespace std; main () { char a[20]; cin.get(a,20); cout<<a<<endl; }
輸入:jkl jkl jkl
輸出:jkl jkl jkl
輸入:abcdeabcdeabcdeabcdeabcde (輸入25個字符)
輸出:abcdeabcdeabcdeabcd (接收19個字符+1個'\0')
3、cin.getline() // 接收一個字符串,可以接收空格並輸出
注意:cin.getline()的參數是char *而getline()的參數是string
#include <iostream> using namespace std; main () { char m[20]; cin.getline(m,5); cout<<m<<endl; }
輸入:jkljkljkl
輸出:jklj
接受5個字符到m中,其中最後一個為'\0',所以只看到4個字符輸出;
如果把5改成20:
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jklf fjlsjf fjsdklf
輸出:jklf fjlsjf fjsdklf
//延伸:
//cin.getline()實際上有三個參數,cin.getline(字符串存儲區域m,接收個數5,結束字符)
//當第三個參數省略時,系統默認為'\0'
//如果將例子中cin.getline()改為cin.getline(m,5,'a');當輸入jlkjkljkl時輸出jklj,輸入jkaljkljkl時,輸出jk
4、getline() // 接收一個字符串,可以接收空格並輸出,需包含“#include<string>”
#include<iostream> #include<string> using namespace std; main () { string str; getline(cin,str); cout<<str<<endl; }
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkl jfksldfj jklsjfl
輸出:jkl jfksldfj jklsjfl
和cin.getline()類似,但是cin.getline()屬於istream流,而getline()屬於string流,是不一樣的兩個函數
5、gets() // 接收一個字符串,可以接收空格並輸出,需包含“#include<string>”
#include<iostream> #include<string> using namespace std; main () { char m[20]; gets(m); //不能寫成m=gets(); cout<<m<<endl; }
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkl jkl jkl
輸出:jkl jkl jkl
6、getchar() //接收一個字符,需包含“#include<string>”
#include<iostream> #include<string> using namespace std; main () { char ch; ch=getchar(); //不能寫成getchar(ch); cout<<ch<<endl; }
輸入:jkljkljkl
輸出:j
//getchar()是C語言的函數,C++也可以兼容,但是盡量不用或少用;
許多輸入/輸出語句都能返回操作狀態(true或false),例如:
if(cin>>a) cout<<a; //若讀入失敗,則跳過cout<<a; if(getline(in, str)) cout<<str; //若讀入失敗,則跳過cout<<str; if(a=cin.get() < 0) cout<<a; //若讀入字符失敗,則跳過cout<<a; if(cin) cin>>a; //若文字流狀態正常,則輸入