C++ 中 cin.get()、cin.getline()、getline()的區別
文章目錄
1 輸入輸出流
#include<iostream>
1.1 cin.get() 用法
1.1.1 cin.get(字符變量名)可以用來接收一個字符
#include <iostream>
using namespace std;
int main (){
char ch;
ch = cin.get(); //或者cin.get(ch);
cout << ch << endl;
return 0;
}
// 輸入:jljkljkl
// 輸出:j
1.1.2 cin.get(?,?)用來接收一行字符串,可以接收空格
- cin.get(字符數組名,接收字符數目)
#include <iostream>
using namespace std;
int main (){
char a[20];
cin.get(a,20);
cout << a << endl;
return 0;
}
// 輸入:jkl jkl jkl
// 輸出:jkl jkl jkl
// 輸入:abcdeabcdeabcdeabcdeabcde (輸入25個字符)
//輸出:abcdeabcdeabcdeabcd (接收19個字符+1個'\0')
1.1.3 cin.get()捨棄回車
- cin.get(無參數)沒有參數主要是用於捨棄輸入流中的不需要的字符,或者捨棄回車,彌補cin.get(字符數組名,接收字符數目)的不足。
- 用法看這道題( 翻轉字符串)。
1.2 cin.getline() 用法
1.2.1 cin.getline()接受一個字符串(可含空格)
#include <iostream>
using namespace std;
int main (){
char m[20];
cin.getline(m,5);
cout << m << endl;
}
// 輸入:jkljkljkl
// 輸出:jklj
// 接受5個字符到m中,其中最後一個爲'\0',所以只看到4個字符輸出。
2 string類
#include<string>
2.1 getline() 用法
2.1.1 getline() 接受一個字符串(可含空格)
#include<iostream>
#include<string>
using namespace std;
int main (){
string str;
getline(cin,str);
cout << str << endl;
return 0;
}
// 輸入:jkljkljkl
// 輸出:jkljkljkl
// 輸入:jkl jfksldfj jklsjfl
// 輸出:jkl jfksldfj jklsjfl
3 總結一下
寫了這麼多,好像有用的需要記住的也就三點。
cin.get();
可以吃掉一個回車。getline(cin, str);
輸入字符串。cin.getline(charstr, num) ;
可以用來截斷字符串。